Documentation ¶
Index ¶
- func IsGoPackage(pkgPath string) bool
- type AnnotationInfo
- type AstFuncDecl
- type AstInfo
- type AstTypeDecl
- type FieldInfo
- type FieldStructInfo
- type FieldStructWalk
- type FunctionInfo
- func (s *FunctionInfo) Annotation(name string) *AnnotationInfo
- func (s *FunctionInfo) Annotations() map[string]*AnnotationInfo
- func (s *FunctionInfo) Ast() *AstFuncDecl
- func (s *FunctionInfo) Decl() *AstFuncDecl
- func (s *FunctionInfo) Func() *types.Func
- func (s *FunctionInfo) Id() string
- func (s *FunctionInfo) Name() string
- type Indexer
- func (indexer *Indexer) FindInterfaceImplementations(name string) []*StructInfo
- func (indexer *Indexer) FindInterfacesByAnnotation(name string) []*StructInfo
- func (indexer *Indexer) FindStructsByAnnotation(name string) []*StructInfo
- func (indexer *Indexer) Interface(name string) *InterfaceInfo
- func (indexer *Indexer) Interfaces() map[string]*InterfaceInfo
- func (indexer *Indexer) Load() error
- func (indexer *Indexer) LoadPattern(pattern ...string) error
- func (indexer *Indexer) MainModule() *ModuleInfo
- func (indexer *Indexer) Module(path string) *ModuleInfo
- func (indexer *Indexer) Modules() map[string]*ModuleInfo
- func (indexer *Indexer) Package(pkgPath string) *PackageInfo
- func (indexer *Indexer) Packages() map[string]*PackageInfo
- func (indexer *Indexer) Struct(name string) *StructInfo
- func (indexer *Indexer) Structs() map[string]*StructInfo
- type IndexerConfig
- type InterfaceInfo
- type ModuleInfo
- type PackageInfo
- type StructInfo
- func (s *StructInfo) Annotation(name string) *AnnotationInfo
- func (s *StructInfo) Annotations() map[string]*AnnotationInfo
- func (s *StructInfo) Ast() *AstTypeDecl
- func (s *StructInfo) FieldStructInfo() *FieldStructInfo
- func (s *StructInfo) Fields(walk FieldStructWalk)
- func (s *StructInfo) Id() string
- func (s *StructInfo) Implements(interfaceInfo *InterfaceInfo) bool
- func (s *StructInfo) Name() string
- func (s *StructInfo) Named() *types.Named
- func (s *StructInfo) Package() *PackageInfo
- func (s *StructInfo) Struct() *types.Struct
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsGoPackage ¶ added in v0.12.0
Types ¶
type AnnotationInfo ¶
AnnotationInfo represents annotation
type AstFuncDecl ¶
type AstFuncDecl struct {
// contains filtered or unexported fields
}
AstFuncDecl ast function declaration
func (*AstFuncDecl) Annotations ¶
func (a *AstFuncDecl) Annotations(r *regexp.Regexp) map[string]*AnnotationInfo
Annotations returns list of annotations
func (*AstFuncDecl) FuncType ¶
func (a *AstFuncDecl) FuncType() *ast.FuncType
FuncType struct type of the type
type AstInfo ¶
type AstInfo struct {
// contains filtered or unexported fields
}
AstInfo syntax info
type AstTypeDecl ¶
type AstTypeDecl struct {
// contains filtered or unexported fields
}
AstFuncDecl ast type declaration
func (*AstTypeDecl) Annotations ¶
func (a *AstTypeDecl) Annotations(r *regexp.Regexp) map[string]*AnnotationInfo
Annotations returns list of annotations
func (*AstTypeDecl) GenDecl ¶
func (a *AstTypeDecl) GenDecl() *ast.GenDecl
GenDecl struct type of the type
func (*AstTypeDecl) InterfaceType ¶
func (a *AstTypeDecl) InterfaceType() *ast.InterfaceType
InterfaceType struct type of the type
func (*AstTypeDecl) StructType ¶
func (a *AstTypeDecl) StructType() *ast.StructType
StructType struct type of the type
type FieldInfo ¶ added in v0.6.0
type FieldInfo struct { Struct *FieldStructInfo Index int Metadata map[string]string }
func (*FieldInfo) FieldStructInfo ¶ added in v0.6.0
type FieldStructInfo ¶ added in v0.6.0
type FieldStructInfo struct { Info *StructInfo Parent *FieldInfo Named *types.Named Struct *types.Struct Level int Metadata map[string]string }
func (*FieldStructInfo) Field ¶ added in v0.6.0
func (f *FieldStructInfo) Field(index int) *FieldInfo
func (*FieldStructInfo) Fields ¶ added in v0.17.0
func (f *FieldStructInfo) Fields() map[string]*FieldInfo
func (*FieldStructInfo) Name ¶ added in v0.6.0
func (f *FieldStructInfo) Name() string
func (*FieldStructInfo) NumFields ¶ added in v0.6.0
func (f *FieldStructInfo) NumFields() int
func (*FieldStructInfo) Tag ¶ added in v0.6.0
func (f *FieldStructInfo) Tag(index int) string
type FieldStructWalk ¶ added in v0.6.0
type FieldStructWalk interface { FieldBefore(f *FieldInfo) bool FieldAfter(f *FieldInfo) Basic(f *FieldInfo, t *types.Basic) Interface(f *FieldInfo, n *types.Named, t *types.Interface) Array(f *FieldInfo, t *types.Array) bool Slice(f *FieldInfo, t *types.Slice) bool Map(f *FieldInfo, t *types.Map) (bool, bool) Struct(f *FieldInfo, n *types.Named, t *types.Struct) bool StructBefore(s *FieldStructInfo) bool StructAfter(s *FieldStructInfo) }
type FunctionInfo ¶
type FunctionInfo struct {
// contains filtered or unexported fields
}
FunctionInfo represents function
func (*FunctionInfo) Annotation ¶ added in v0.17.0
func (s *FunctionInfo) Annotation(name string) *AnnotationInfo
Annotation returns annotation by name or nil
func (*FunctionInfo) Annotations ¶ added in v0.17.0
func (s *FunctionInfo) Annotations() map[string]*AnnotationInfo
Annotations returns list of interface annotations or emtpy list
func (*FunctionInfo) Ast ¶ added in v0.17.0
func (s *FunctionInfo) Ast() *AstFuncDecl
Ast declaration of the type
func (*FunctionInfo) Decl ¶
func (s *FunctionInfo) Decl() *AstFuncDecl
Decl ast declaration of the type
func (*FunctionInfo) Func ¶ added in v0.17.0
func (s *FunctionInfo) Func() *types.Func
Func func type
func (*FunctionInfo) Name ¶ added in v0.17.0
func (s *FunctionInfo) Name() string
Name of the interface
type Indexer ¶
type Indexer struct {
// contains filtered or unexported fields
}
Indexer hold the information about the packages and types
func CreateDefaultIndexer ¶ added in v0.7.0
func CreateDefaultIndexer() *Indexer
CreateIndexer creates indexer
func CreateIndexer ¶
func CreateIndexer(config *IndexerConfig) *Indexer
CreateIndexer creates indexer
func (*Indexer) FindInterfaceImplementations ¶ added in v0.15.0
func (indexer *Indexer) FindInterfaceImplementations(name string) []*StructInfo
FindInterfaceImplementation find all interface implementations
func (*Indexer) FindInterfacesByAnnotation ¶ added in v0.15.0
func (indexer *Indexer) FindInterfacesByAnnotation(name string) []*StructInfo
FindInterfacesByAnnotation find all interfaces by annotation
func (*Indexer) FindStructsByAnnotation ¶ added in v0.15.0
func (indexer *Indexer) FindStructsByAnnotation(name string) []*StructInfo
FindStructsByAnnotation find all structs by annotation
func (*Indexer) Interface ¶ added in v0.14.0
func (indexer *Indexer) Interface(name string) *InterfaceInfo
Interface returns by name or nil
func (*Indexer) Interfaces ¶
func (indexer *Indexer) Interfaces() map[string]*InterfaceInfo
Interfaces return map of all interfaces
func (*Indexer) LoadPattern ¶
LoadPattern load packages by the pattern to the indexer
func (*Indexer) MainModule ¶ added in v0.17.0
func (indexer *Indexer) MainModule() *ModuleInfo
func (*Indexer) Module ¶ added in v0.17.0
func (indexer *Indexer) Module(path string) *ModuleInfo
Package returns module by module path or nil
func (*Indexer) Modules ¶ added in v0.17.0
func (indexer *Indexer) Modules() map[string]*ModuleInfo
Packages return map of all modules
func (*Indexer) Package ¶ added in v0.14.0
func (indexer *Indexer) Package(pkgPath string) *PackageInfo
Package returns package by package path or nil
func (*Indexer) Packages ¶
func (indexer *Indexer) Packages() map[string]*PackageInfo
Packages return map of all packages
func (*Indexer) Struct ¶ added in v0.14.0
func (indexer *Indexer) Struct(name string) *StructInfo
Struct returns struct by name or nil
func (*Indexer) Structs ¶
func (indexer *Indexer) Structs() map[string]*StructInfo
Structs return map of all structs
type IndexerConfig ¶ added in v0.7.0
type IndexerConfig struct { DefaultAnnoRegex *regexp.Regexp DefaultPattern []string Debug bool SkipGoPackages bool Mode packages.LoadMode }
func CreateDefaultConfig ¶ added in v0.7.0
func CreateDefaultConfig() *IndexerConfig
CreateIndexer creates indexer
type InterfaceInfo ¶
type InterfaceInfo struct {
// contains filtered or unexported fields
}
InterfaceInfo represents interface
func (*InterfaceInfo) Annotation ¶ added in v0.17.0
func (s *InterfaceInfo) Annotation(name string) *AnnotationInfo
Annotation returns annotation by name or nil
func (*InterfaceInfo) Annotations ¶
func (s *InterfaceInfo) Annotations() map[string]*AnnotationInfo
Annotations returns list of interface annotations or emtpy list
func (*InterfaceInfo) Interface ¶ added in v0.16.0
func (s *InterfaceInfo) Interface() *types.Interface
Interface interface type
type ModuleInfo ¶ added in v0.17.0
type ModuleInfo struct {
// contains filtered or unexported fields
}
ModuleInfo struct represents the module information
func (*ModuleInfo) Data ¶ added in v0.17.0
func (m *ModuleInfo) Data() *packages.Module
func (*ModuleInfo) Name ¶ added in v0.17.0
func (m *ModuleInfo) Name() string
func (*ModuleInfo) Version ¶ added in v0.17.0
func (m *ModuleInfo) Version() string
type PackageInfo ¶
type PackageInfo struct {
// contains filtered or unexported fields
}
PackageInfo struct represents the package information
type StructInfo ¶
type StructInfo struct {
// contains filtered or unexported fields
}
StructInfo information about the struct
func (*StructInfo) Annotation ¶ added in v0.17.0
func (s *StructInfo) Annotation(name string) *AnnotationInfo
Annotation returns annotation by name or nil
func (*StructInfo) Annotations ¶
func (s *StructInfo) Annotations() map[string]*AnnotationInfo
Annotations returns list of struct annotations or empty list
func (*StructInfo) FieldStructInfo ¶ added in v0.17.0
func (s *StructInfo) FieldStructInfo() *FieldStructInfo
func (*StructInfo) Fields ¶ added in v0.6.0
func (s *StructInfo) Fields(walk FieldStructWalk)
func (*StructInfo) Implements ¶ added in v0.14.0
func (s *StructInfo) Implements(interfaceInfo *InterfaceInfo) bool
Implements returns true if struct implments the interface
func (*StructInfo) Package ¶
func (s *StructInfo) Package() *PackageInfo
Package struct package info