Documentation ¶
Overview ¶
Package model contains the types that describe Go code.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Code ¶
type Code struct { // Packages represents a list of packages. Packages []Package `json:"packages"` // TargetPackageName is the name of the target package. TargetPackageName string }
Code represents the Go code as a data model.
type Func ¶
type Func struct { // Name is the name of the function. Name string `json:"name"` // Args represents the input arguments. Args Args `json:"args"` // ReturnArgs represents the output arguments. ReturnArgs Args `json:"returnArgs"` // Variadic indicates whether the final input argument is // variadic or not. Variadic bool `json:"variadic"` }
Func represents a function.
type Import ¶
type Import struct {
Name string `json:"name"`
}
Import represents an imported package.
type Interface ¶
type Interface struct { // Name is the name of the interface. Name string `json:"name"` // Fullname is the full code name of the interface. // It may be: // package.Interface Fullname string `json:"fullname"` // Methods is the methods that make up this // interface. Methods []Func `json:"methods"` }
Interface represents an interface.
type Package ¶
type Package struct { // Name is the name of the package. Name string `json:"name"` // Imports is a list of packages that need importing. Imports []Import `json:"imports"` // Funcs represents the global functions. Funcs []Func `json:"funcs"` // Interfaces represents the global interfaces in the // package. Interfaces []Interface `json:"interfaces"` // Vars are the global variables defined in this // package. Vars []Var `json:"vars"` // Consts are the global constants defined in this // package. Consts []Var `json:"consts"` // Structs represents the global structs defined in this // package. Structs []Struct `json:"structs"` }
Package represents a single Go package.
type Struct ¶
type Struct struct { // Name is the name of the struct. Name string `json:"name"` // Fullname is the full code name of the struct. // It may be: // package.Struct Fullname string `json:"fullname"` // Methods are the functions that have this struct as // its receiver. Methods []Func `json:"methods"` // Fields are the fields in this struct. Fields []Var `json:"fields"` }
Struct represents a struct.
type Type ¶
type Type struct { // Name is the name of the type. Name string `json:"name"` // Fullname is the full code name of the type. // It may be: // package.Interface Fullname string `json:"fullname"` }
Type represents a type.
type Var ¶
type Var struct { // Name is the name of this variable. Name string `json:"name"` // Anonymous indicates whether the variable has // a name or not. Anonymous bool `json:"anonymous"` // Type is the type of this variable. Type Type `json:"type"` // Tag is the field tag for this variable or an empty // string if it doesn't have one. Tag string `json:"tag"` // Variadic indicates whether this argument is // variadic or not. Variadic bool `json:"variadic"` }
Var represents a variable.
Click to show internal directories.
Click to hide internal directories.