Documentation
¶
Index ¶
- type Generator
- type Method
- func (m Method) Call() string
- func (m Method) Declaration() string
- func (m Method) HasParams() bool
- func (m Method) HasResults() bool
- func (m Method) ParamsMap() string
- func (m Method) ParamsNames() string
- func (m Method) ParamsStruct() string
- func (m Method) Pass(prefix string) string
- func (m Method) ResultsMap() string
- func (m Method) ResultsNames() string
- func (m Method) ResultsStruct() string
- func (m Method) ReturnStruct(structName string) string
- func (m Method) Signature() string
- type Options
- type Param
- type ParamsSlice
- type TemplateInputInterface
- type TemplateInputs
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Generator ¶
type Generator struct {
Options
// contains filtered or unexported fields
}
Generator generates decorators for the interface types
func NewGenerator ¶
NewGenerator returns Generator initialized with options
type Method ¶
type Method struct {
Doc []string
Comment []string
Name string
Params ParamsSlice
Results ParamsSlice
ReturnsError bool
AcceptsContext bool
}
Method represents a method's signature
func (Method) Declaration ¶
Declaration returns a method name followed by it's signature
func (Method) HasResults ¶
HasResults returns true if method has results
func (Method) ParamsMap ¶
ParamsMap returns a string representation of the map[string]interface{} filled with method's params
func (Method) ParamsNames ¶
ParamsNames returns a list of method params names
func (Method) ParamsStruct ¶
ParamsStruct returns a struct type with fields corresponding to the method params
func (Method) Pass ¶
Pass returns a return statement followed by the method call If method does not have any results it returns a method call followed by return statement
func (Method) ResultsMap ¶
ResultsMap returns a string representation of the map[string]interface{} filled with method's results
func (Method) ResultsNames ¶
ResultsNames returns a list of method results names
func (Method) ResultsStruct ¶
ResultsStruct returns a struct type with fields corresponding to the method results
func (Method) ReturnStruct ¶
ReturnStruct returns return statement with the return params taken from the structName
type Options ¶
type Options struct {
//InterfaceName is a name of interface type
InterfaceName string
//Imports from the file with interface definition
Imports []string
//SourcePackage is an import path or a relative path of the package that contains the source interface
SourcePackage string
//SourcePackageAlias is an import selector defauls is source package name
SourcePackageAlias string
//OutputFile name which is used to detect destination package name and also to fix imports in the resulting source
OutputFile string
//HeaderTemplate is used to generate package clause and comment over the generated source
HeaderTemplate string
//BodyTemplate generates import section, decorator constructor and methods
BodyTemplate string
//Vars additional vars that are passed to the templates from the command line
Vars map[string]interface{}
//HeaderVars header specific variables
HeaderVars map[string]interface{}
//Funcs is a map of helper functions that can be used within a template
Funcs template.FuncMap
//LocalPrefix is a comma-separated string of import path prefixes, which, if set, instructs Process to sort the import
//paths with the given prefixes into another group after 3rd-party packages.
LocalPrefix string
}
Options of the NewGenerator constructor
type Param ¶
Param represents fuction argument or result
type ParamsSlice ¶
type ParamsSlice []Param
ParamsSlice slice of parameters
func (ParamsSlice) Pass ¶
func (ps ParamsSlice) Pass() string
Pass returns comma separated params names to be passed to a function call with respect to variadic functions
type TemplateInputInterface ¶
type TemplateInputInterface struct {
Name string
// Type of the interface, with package name qualifier (e.g. sort.Interface)
Type string
// Methods name keyed map of method information
Methods map[string]Method
}
TemplateInputInterface subset of interface information used for template generation
type TemplateInputs ¶
type TemplateInputs struct {
// Interface information for template
Interface TemplateInputInterface
// Vars additional vars to pass to the template, see Options.Vars
Vars map[string]interface{}
Imports []string
}
TemplateInputs information passed to template for generation
func (TemplateInputs) Import ¶
func (t TemplateInputs) Import(imports ...string) string
Import generates an import statement using a list of imports from the source file along with the ones from the template itself