generator

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 26, 2018 License: MIT Imports: 12 Imported by: 6

Documentation

Index

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

func NewGenerator(options Options) (*Generator, error)

NewGenerator returns Generator initialized with options

func (Generator) Generate

func (g Generator) Generate(w io.Writer) error

Generate generates code using header and body templates

type Method

type Method struct {
	Name    string
	Params  []Param
	Results []Param

	ReturnsError   bool
	AcceptsContext bool
}

Method represents a method's signature

func NewMethod

func NewMethod(name string, f *ast.FuncType, printer typePrinter) (*Method, error)

NewMethod returns pointer to Signature struct or error

func (Method) Call

func (m Method) Call() string

Call returns a string with the method call

func (Method) Declaration

func (m Method) Declaration() string

Declaration returns a method name followed by it's signature

func (Method) HasParams

func (m Method) HasParams() bool

HasParams returns true if method has params

func (Method) HasResults

func (m Method) HasResults() bool

HasResults returns true if method has results

func (Method) Pass

func (m Method) Pass(prefix string) string

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) ResultsNames

func (m Method) ResultsNames() string

ResultsNames returns a list of method results names

func (Method) ResultsStruct

func (m Method) ResultsStruct() string

ResultsStruct returns a struct type with fields corresponding to the method params

func (Method) ReturnStruct

func (m Method) ReturnStruct(structName string) string

ReturnStruct returns return statement with the return params taken from the structName

func (Method) Signature

func (m Method) Signature() string

Signature returns comma separated method's params followed by the comma separated method's results

type Options

type Options struct {
	//InterfaceName is a name of interface type
	InterfaceName string

	//SourcePackageDir is a real path of the package that contains source interface
	SourcePackageDir 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
	Vars map[string]interface{}

	//Funcs is a map of helper functions that can be used within a template
	Funcs template.FuncMap
}

Options of the NewGenerator constructor

type Param

type Param struct {
	Name     string
	Type     string
	Variadic bool
}

Param represents fuction argument or result

func NewParam

func NewParam(name string, typ ast.Expr, usedNames map[string]bool, printer typePrinter) (*Param, error)

NewParam returns Param struct

func (Param) Pass

func (p Param) Pass() string

Pass returns a name of the parameter If parameter is variadic it returns a name followed by a ...

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL