Versions in this module Expand all Collapse all v1 v1.0.2 Aug 4, 2022 Changes in this version + const ANY_MODE + const READ_MODE + const RW_MODE + const WRITE_MODE + func AddAutoAssignExists(b Builder, lhs *Variable) + func AddCheckReturn(b Builder, cond ast.Expr, ev *Variable) + func AddErrorReturn(b Builder, ev *Variable) + func AddReturnStmt(b Builder, results *VariableList) + func AddSuccessReturn(b Builder) + func AppendExpr(list ast.Expr, item ast.Expr) ast.Expr + func CamelString(src string) string + func CondExpr(op token.Token, exprs ...ast.Expr) ast.Expr + func DotExpr(x ast.Expr, dot ast.Expr) ast.Expr + func FollowTPaths(bd Builder, srcV, dstV *Variable, ev *Variable, paths []*parser.TPath) + func GenNameFromType(typ ast.Expr) string + func GetStructHolder(t parser.Type) parser.Type + func IncreaseName(name string) string + func LenExpr(a ast.Expr) ast.Expr + func NewAstIdent(name string) *ast.Ident + func NewSelectorExpr(x ast.Expr, sel *ast.Ident) *ast.SelectorExpr + func StructAssign(bd Builder, srcV, dstV *Variable, srcFields, dstFields *FieldList, ...) + func TryDirectAssign(bd Builder, srcV, dstV *Variable, ev *Variable, knownTpaths []*parser.TPath) bool + func TypeConversionExpr(typeExpr ast.Expr, val ast.Expr) ast.Expr + func VariableName(name string) string + type BlockBuilder struct + Body *ast.BlockStmt + func (b *BlockBuilder) Add(ab Builder) + func (b *BlockBuilder) Block() *BlockBuilder + func (b *BlockBuilder) Bytes() []byte + func (b *BlockBuilder) StmtList() []ast.Stmt + func (b *BlockBuilder) String() string + func (b BlockBuilder) File() *parser.File + func (b BlockBuilder) Outer() Builder + func (b BlockBuilder) Package() *parser.Package + func (b BlockBuilder) Variables() *VariableList + type BufferBuilder interface + type Builder interface + Add func(Builder) + Block func() *BlockBuilder + Bytes func() []byte + Outer func() Builder + String func() string + Variables func() *VariableList + func NewIfBuilderWithSrc(outer Builder, src string) Builder + type CallStmtBuilder struct + func NewCallStmt(outer Builder, fnt parser.Type) *CallStmtBuilder + func (b *CallStmtBuilder) Bytes() []byte + func (b *CallStmtBuilder) Call(vl *VariableList, ignores []int) *VariableList + func (b *CallStmtBuilder) Stmt() ast.Stmt + func (b CallStmtBuilder) Add(bd Builder) + func (b CallStmtBuilder) Block() *BlockBuilder + func (b CallStmtBuilder) File() *parser.File + func (b CallStmtBuilder) Outer() Builder + func (b CallStmtBuilder) Package() *parser.Package + func (b CallStmtBuilder) String() string + func (b CallStmtBuilder) Variables() *VariableList + type CreateVarGetter struct + NewVars *VariableList + func (getter *CreateVarGetter) Get(i int, t parser.Type) *Variable + func (getter *CreateVarGetter) Getted() *VariableList + type DefineStmtBuilder struct + func NewDefine(outer Builder, vl []*Variable, value ast.Expr) *DefineStmtBuilder + func (b *DefineStmtBuilder) Stmt() ast.Stmt + func (b DefineStmtBuilder) Add(bd Builder) + func (b DefineStmtBuilder) Block() *BlockBuilder + func (b DefineStmtBuilder) Bytes() []byte + func (b DefineStmtBuilder) File() *parser.File + func (b DefineStmtBuilder) Outer() Builder + func (b DefineStmtBuilder) Package() *parser.Package + func (b DefineStmtBuilder) String() string + func (b DefineStmtBuilder) Variables() *VariableList + type ErrorWrapper interface + Wrap func(b Builder, ev *Variable) *Variable + WrapError func(b Builder, ev *Variable) *VariableList + func NewErrorWrapper(input interface{}) ErrorWrapper + type Field struct + Field *parser.Field + Name string + type FieldList struct + Fields []*Field + TagName string + func NewFieldList(tagName string) *FieldList + func (list *FieldList) ContainPathToType(t parser.Type) (*Field, []*parser.TPath, bool) + func (list *FieldList) GetFieldByName(name string) *Field + func (list *FieldList) Print() + func (list *FieldList) SpreadInspector(field *parser.Field) bool + type FileBuilder struct + func NewFile(outer Builder, file *parser.File) *FileBuilder + func (b *FileBuilder) Add(ab Builder) + func (b *FileBuilder) AddFuncDecl(fd *ast.FuncDecl) + func (b *FileBuilder) AddImport(name, path string) + func (b *FileBuilder) Block() *BlockBuilder + func (b *FileBuilder) Bytes() []byte + func (b *FileBuilder) String() string + func (b FileBuilder) File() *parser.File + func (b FileBuilder) Outer() Builder + func (b FileBuilder) Package() *parser.Package + func (b FileBuilder) Variables() *VariableList + type ForRangeBuilder struct + func NewForRange(outer Builder, key *Variable, value *Variable, over *Variable) *ForRangeBuilder + func (b *ForRangeBuilder) Block() *BlockBuilder + func (b *ForRangeBuilder) Bytes() []byte + func (b *ForRangeBuilder) Stmt() ast.Stmt + func (b ForRangeBuilder) Add(bd Builder) + func (b ForRangeBuilder) File() *parser.File + func (b ForRangeBuilder) Outer() Builder + func (b ForRangeBuilder) Package() *parser.Package + func (b ForRangeBuilder) String() string + func (b ForRangeBuilder) Variables() *VariableList + type FuncBufferBuilder struct + func NewFuncBuffer(outer Builder, name string) *FuncBufferBuilder + func (b *FuncBufferBuilder) Block() *BlockBuilder + func (b *FuncBufferBuilder) Bytes() []byte + func (b *FuncBufferBuilder) Decl() *ast.FuncDecl + func (b *FuncBufferBuilder) Printf(format string, args ...interface{}) + func (b *FuncBufferBuilder) String() string + func (b FuncBufferBuilder) Add(bd Builder) + func (b FuncBufferBuilder) File() *parser.File + func (b FuncBufferBuilder) Outer() Builder + func (b FuncBufferBuilder) Package() *parser.Package + func (b FuncBufferBuilder) Variables() *VariableList + type FuncBuilder struct + Decl *ast.FuncDecl + func NewFunction(outer Builder, receiver parser.Type, fnt parser.Type, ew ErrorWrapper) *FuncBuilder + func (b *FuncBuilder) Add(ab Builder) + func (b *FuncBuilder) Block() *BlockBuilder + func (b *FuncBuilder) Bytes() []byte + func (b *FuncBuilder) HasResults() bool + func (b *FuncBuilder) Receiver() *Variable + func (b *FuncBuilder) String() string + func (b *FuncBuilder) Variables() *VariableList + func (b FuncBuilder) File() *parser.File + func (b FuncBuilder) Outer() Builder + func (b FuncBuilder) Package() *parser.Package + type IfStmtBuilder struct + func NewIfStmt(outer Builder) *IfStmtBuilder + func (b *IfStmtBuilder) Block() *BlockBuilder + func (b *IfStmtBuilder) Bytes() []byte + func (b *IfStmtBuilder) Else() *BlockBuilder + func (b *IfStmtBuilder) SetInitCond(init StmtBuilder, cond ast.Expr) *IfStmtBuilder + func (b *IfStmtBuilder) Stmt() ast.Stmt + func (b IfStmtBuilder) Add(bd Builder) + func (b IfStmtBuilder) File() *parser.File + func (b IfStmtBuilder) Outer() Builder + func (b IfStmtBuilder) Package() *parser.Package + func (b IfStmtBuilder) String() string + func (b IfStmtBuilder) Variables() *VariableList + type Mode int + func (t Mode) Contains(m Mode) bool + type Printer interface + Printf func(format string, args ...interface{}) + type ReturnStmtBuilder struct + func NewReturnStmt(outer Builder, results *VariableList) *ReturnStmtBuilder + func (b *ReturnStmtBuilder) Stmt() ast.Stmt + func (b ReturnStmtBuilder) Add(bd Builder) + func (b ReturnStmtBuilder) Block() *BlockBuilder + func (b ReturnStmtBuilder) Bytes() []byte + func (b ReturnStmtBuilder) File() *parser.File + func (b ReturnStmtBuilder) Outer() Builder + func (b ReturnStmtBuilder) Package() *parser.Package + func (b ReturnStmtBuilder) String() string + func (b ReturnStmtBuilder) Variables() *VariableList + type ScopeLevel int + const Scope_File + const Scope_Function + const Scope_Local + type StmtBuilder interface + Stmt func() ast.Stmt + type StmtListBuilder interface + StmtList func() []ast.Stmt + type StructAssignBuilder struct + func NewStructAssign(outer Builder, tag string, ev *Variable, paths []*parser.TPath) *StructAssignBuilder + func (b *StructAssignBuilder) Stmts() []ast.Stmt + func (b *StructAssignBuilder) TryAssign(srcV, dstV *Variable) bool + func (b StructAssignBuilder) File() *parser.File + func (b StructAssignBuilder) Outer() Builder + func (b StructAssignBuilder) Package() *parser.Package + func (b StructAssignBuilder) Variables() *VariableList + type StructSetterBuilder struct + func NewStructSetter(outer Builder, tag string, ev *Variable, paths []*parser.TPath) *StructSetterBuilder + func (b *StructSetterBuilder) Stmts() []ast.Stmt + func (b *StructSetterBuilder) TryAssign(srcV, dstV *Variable) bool + func (b *StructSetterBuilder) WithAssigner(assigner func(*Field) func(Builder, *Variable, ast.Expr)) *StructSetterBuilder + func (b *StructSetterBuilder) WithCallFunc(callFunc func(*Field) parser.Type) *StructSetterBuilder + func (b *StructSetterBuilder) WithCheckDiff() *StructSetterBuilder + func (b StructSetterBuilder) File() *parser.File + func (b StructSetterBuilder) Outer() Builder + func (b StructSetterBuilder) Package() *parser.Package + func (b StructSetterBuilder) Variables() *VariableList + type TPathBuilder struct + func NewTPathBuilder(outer Builder, ev *Variable, checkDiff bool) *TPathBuilder + func (b *TPathBuilder) Stmts() []ast.Stmt + func (b *TPathBuilder) WithAssigner(assigner func(Builder, *Variable, ast.Expr)) *TPathBuilder + func (b *TPathBuilder) WithTargetSetter(fnt parser.Type) *TPathBuilder + func (b TPathBuilder) File() *parser.File + func (b TPathBuilder) Outer() Builder + func (b TPathBuilder) Package() *parser.Package + func (b TPathBuilder) Variables() *VariableList + func (bd *TPathBuilder) Follow(srcV, dstV *Variable, paths []*parser.TPath) + type VarAssignBuilder struct + func (b VarAssignBuilder) Add(bd Builder) + func (b VarAssignBuilder) Block() *BlockBuilder + func (b VarAssignBuilder) Bytes() []byte + func (b VarAssignBuilder) File() *parser.File + func (b VarAssignBuilder) Outer() Builder + func (b VarAssignBuilder) Package() *parser.Package + func (b VarAssignBuilder) String() string + func (b VarAssignBuilder) Variables() *VariableList + type VarGetter interface + Get func(int, parser.Type) *Variable + Getted func() *VariableList + func NewCreateVarGetter(exists *VariableList, mode Mode) VarGetter + func NewVarListGetter(vl *VariableList, mode Mode) VarGetter + func VarGetterWithIgnore(getter VarGetter, ignores []int) VarGetter + type VarListGetter struct + func (getter *VarListGetter) Get(i int, t parser.Type) *Variable + func (getter *VarListGetter) Getted() *VariableList + type Variable struct + Type parser.Type + func AddAppendStmt(b Builder, v *Variable, element *Variable) *Variable + func AddVariableAssign(b Builder, v *Variable, value ast.Expr) *Variable + func AddVariableDecl(b Builder, v *Variable) *Variable + func GetVariable(b Builder, t parser.Type, mode Mode, scope ScopeLevel) *Variable + func GetVariableWithSkip(b Builder, t parser.Type, mode Mode, scope ScopeLevel, skip int) *Variable + func NewVariable(pt parser.Type) *Variable + func (v *Variable) AddressExpr() ast.Expr + func (v *Variable) AutoName() *Variable + func (v *Variable) CheckEqualExpr(isEqual bool, y ast.Expr) ast.Expr + func (v *Variable) CheckNilExpr(isNil bool) ast.Expr + func (v *Variable) Copy() *Variable + func (v *Variable) DotExpr(name string) ast.Expr + func (v *Variable) DotTypeInFile(dotSrc string, file *parser.File) parser.Type + func (v *Variable) DotVariable(dotString string, file *parser.File) *Variable + func (v *Variable) Expr() ast.Expr + func (v *Variable) Ident() ast.Expr + func (v *Variable) IncreaseName() + func (v *Variable) IndexExpr(index ast.Expr) ast.Expr + func (v *Variable) IsAnonymous() bool + func (v *Variable) IsReadOnly() bool + func (v *Variable) IsReadable() bool + func (v *Variable) IsVisible() bool + func (v *Variable) IsWriteOnly() bool + func (v *Variable) IsWriteable() bool + func (v *Variable) Mode() Mode + func (v *Variable) Name() string + func (v *Variable) PointerValueExpr() ast.Expr + func (v *Variable) ReadOnly() *Variable + func (v *Variable) ReadWrite() *Variable + func (v *Variable) SetExpr(expr ast.Expr) + func (v *Variable) SetExprSrc(str string) + func (v *Variable) SetMode(mode Mode) + func (v *Variable) SetName(name string) + func (v *Variable) StringKeyItemExpr(key string) ast.Expr + func (v *Variable) TypeConversionExpr(typ ast.Expr) ast.Expr + func (v *Variable) WithExpr(expr ast.Expr) *Variable + func (v *Variable) WithMode(mode Mode) *Variable + func (v *Variable) WithName(name string) *Variable + func (v *Variable) WriteOnly() *Variable + type VariableList struct + List []*Variable + func AddCallStmt(b Builder, params *VariableList, fnt parser.Type) *VariableList + func AddCallStmtWithIgnores(b Builder, params *VariableList, fnt parser.Type, ignores []int) *VariableList + func NewVariableList() *VariableList + func (vl *VariableList) Add(v *Variable) bool + func (vl *VariableList) Check(name string) bool + func (vl *VariableList) Concat(vl2 *VariableList) *VariableList + func (vl *VariableList) CreateGetter(mode Mode) VarGetter + func (vl *VariableList) ForEach(run func(int, *Variable)) + func (vl *VariableList) Get(name string) *Variable + func (vl *VariableList) GetByType(pt parser.Type, mode Mode) *Variable + func (vl *VariableList) GetByTypeAndName(pt parser.Type, name string) *Variable + func (vl *VariableList) Getter(mode Mode) VarGetter + func (vl *VariableList) Insert(v *Variable, pos int) bool + func (vl *VariableList) IsEmpty() bool + func (vl *VariableList) Names() []string + func (vl *VariableList) Print() + func (vl *VariableList) ResultGetter(ignores []int) VarGetter