本文整理汇总了Golang中kego/io/system.Type.SortedFields方法的典型用法代码示例。如果您正苦于以下问题:Golang Type.SortedFields方法的具体用法?Golang Type.SortedFields怎么用?Golang Type.SortedFields使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类kego/io/system.Type
的用法示例。
在下文中一共展示了Type.SortedFields方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: printStructDefinition
func printStructDefinition(ctx context.Context, env *envctx.Env, g *builder.Builder, typ *system.Type) error {
if typ.Description != "" {
g.Println("// ", typ.Description)
}
g.Println("type ", system.GoName(typ.Id.Name), " struct {")
{
if !typ.Basic {
g.Println("*", g.SprintRef("kego.io/system", system.GoName("object")))
}
embedsSortable := system.SortableReferences(typ.Embed)
sort.Sort(embedsSortable)
embeds := []*system.Reference(embedsSortable)
for _, embed := range embeds {
g.Println("*", builder.Reference(embed.Package, system.GoName(embed.Name), env.Path, g.Imports.Add))
}
for _, nf := range typ.SortedFields() {
b := nf.Rule.(system.ObjectInterface).GetObject(nil)
if b.Description != "" {
g.Println("// ", b.Description)
}
descriptor, err := builder.FieldTypeDefinition(ctx, nf.Name, nf.Rule, env.Path, g.Imports.Add)
if err != nil {
return kerr.Wrap("GDSKJDEKQD", err)
}
g.Println(system.GoName(nf.Name), " ", descriptor)
}
}
g.Println("}")
return nil
}