Versions in this module Expand all Collapse all v0 v0.1.0 Sep 3, 2022 v0.0.1 Sep 3, 2022 Changes in this version + const DefaultParseMode + func FnName(fn any) string + func Funcs() template.FuncMap + func GenerateLayer(tmpl string, funcs template.FuncMap, outputFile string, data any, ...) error + func IsError(Type string) bool + func IsPrivate(val string) bool + func IsSamePackage(pkg *Package, target *Package) bool + func Lookup(tag reflect.StructTag, keys ...string) (string, bool) + func ResultVar(index int) string + func SetPackageOnType(pkg string, t string) string + func UseTypeInPackage(from *Package, t string) string + type Annotation struct + Name string + Tag reflect.StructTag + type Annotations []Annotation + func (a Annotations) Lookup(name string) *Annotation + type EmbeddedField struct + Annotations Annotations + Doc string + IsResolved bool + Tag reflect.StructTag + Type string + func UseEmbeddedFieldsInPackage(from *Package, fields []*EmbeddedField) []*EmbeddedField + type EmbeddedResolveFilter func(e *EmbeddedField) bool + type EmbeddedResolver struct + func NewEmbeddedResolver(packages ...*Package) *EmbeddedResolver + func NewEmbeddedResolverWithOpts(packages []*Package, filter EmbeddedResolveFilter) *EmbeddedResolver + func (r *EmbeddedResolver) Resolve() error + type Field struct + Annotations Annotations + Doc string + Name string + Tag reflect.StructTag + Type string + func UseFieldsInPackage(from *Package, fields []*Field) []*Field + type File struct + ImportMap map[string]string + Imports []*Import + Interfaces []*Interface + PackageName string + Structs []*Struct + func NewFile(f *ast.File) *File + func NewFileByName(filename string, mode parser.Mode) (*File, error) + func (f *File) FindInterface(name string) *Interface + func (f *File) FindStruct(name string) *Struct + type Import struct + Name string + Path string + type Interface struct + Annotations Annotations + Doc string + Embedded []*EmbeddedField + Methods []*Method + Name string + func UseInterfaceInPackage(from *Package, iface *Interface) *Interface + func (i *Interface) MethodByName(name string) *Method + type Method struct + Annotations Annotations + Doc string + Name string + Params []*MethodParam + Results []*MethodResult + func UseMethodsInPackage(from *Package, methods []*Method) []*Method + type MethodParam struct + Name string + Type string + type MethodResult = MethodParam + type Package struct + Files []*File + Name string + Path string + func NewPackage(pkgPath string, files []*File) *Package + func NewPackageFromAstPackage(pkgPath string, astPkg *ast.Package) *Package + func NewPackageFromFilenames(pkgPath string, filenames ...string) (*Package, error) + func NewPackageFromFilenamesWithOpts(pkgPath string, mode parser.Mode, filenames ...string) (*Package, error) + func PackagesFromDirs(pkgDirs map[string]string) ([]*Package, error) + func PackagesFromDirsWithOpts(pkgDirs map[string]string, filter func(fs.FileInfo) bool, mode parser.Mode) ([]*Package, error) + func SinglePackageFromDir(pkgPath string, dir string) (*Package, error) + func SinglePackageFromDirWithOpts(pkgPath string, dir string, filter func(fs.FileInfo) bool, mode parser.Mode) (*Package, error) + func (p *Package) FindInterface(name string) (*File, *Interface) + func (p *Package) FindStruct(name string) (*File, *Struct) + type Struct struct + Annotations Annotations + Doc string + Embedded []*EmbeddedField + Fields []*Field + Name string + func UseStructInPackage(from *Package, strct *Struct) *Struct + type TemplateData struct + Interface *Interface + Name string + Package string