east

package
v0.0.0-...-6b90055 Latest Latest
Warning

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

Go to latest
Published: Mar 19, 2024 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExtractNodes

func ExtractNodes[T any](t T, node ast.Node) []T

泛型方法 [T any]表示支持任何类型的参数 (s []T表示形参s是一个T类型的切片)

func InferType

func InferType(str string) (interface{}, error)

func NewImportMete

func NewImportMete(importCode string)

func NewStructMete

func NewStructMete(findStructName, importCode string)

Types

type AstInjectionMeta

type AstInjectionMeta struct {
	FilePath    string
	ImportMetas []*ImportMeta
	StructMetas []*StructMeta
	FuncMetas   []*FuncMeta
}

func (*AstInjectionMeta) Inject

func (vi *AstInjectionMeta) Inject() error

func (*AstInjectionMeta) RollBack

func (vi *AstInjectionMeta) RollBack() error

func (*AstInjectionMeta) Visit

func (vi *AstInjectionMeta) Visit(node ast.Node) ast.Visitor

func (*AstInjectionMeta) Walk

func (vi *AstInjectionMeta) Walk() error

type FuncMeta

type FuncMeta struct {
	InjectCode string //注入的代码
	FuncName   string //插入的方法
	FuncPos    int    //插入的位置

	Variables  []string
	Symbol     string
	IdentNames []string
	Parameters []interface{}
	// contains filtered or unexported fields
}

Variables := IdentName.SelName(Parameters...) IdentName.SelName(Parameters...)

func NewFuncMete

func NewFuncMete(findFuncName, importCode string) *FuncMeta

func (*FuncMeta) GetCode

func (vi *FuncMeta) GetCode() string

func (*FuncMeta) GetNode

func (vi *FuncMeta) GetNode() ast.Node

func (*FuncMeta) RollBack

func (vi *FuncMeta) RollBack(node ast.Node) ast.Visitor

func (*FuncMeta) Visit

func (vi *FuncMeta) Visit(node ast.Node) ast.Visitor

type ImportMeta

type ImportMeta struct {
	InjectCode    string
	ImportAlias   string //导入别名
	ImportPackage string //导入包路径
	HasDone       bool
	// contains filtered or unexported fields
}

插入 import ImportAlias ImportPackage

func (*ImportMeta) RollBack

func (vi *ImportMeta) RollBack(node ast.Node) ast.Visitor

func (*ImportMeta) RollBackImportSpec

func (vi *ImportMeta) RollBackImportSpec(file *ast.File) ast.Visitor

func (*ImportMeta) Visit

func (vi *ImportMeta) Visit(node ast.Node) ast.Visitor

type StructMeta

type StructMeta struct {
	InjectCode     string
	FindStructName string //在 struct FindStructName{ //插入 FieldName  IdentName.SelName  }
	FieldName      string //元素别名
	FieldIdent     string //属性类型引用的包名
	FieldType      string //属性类型
	FieldComment   string //属性注释
	// contains filtered or unexported fields
}

插入 FieldName FieldType.SelName

func (*StructMeta) RollBack

func (vi *StructMeta) RollBack(node ast.Node) ast.Visitor

func (*StructMeta) ToInjectCode

func (vi *StructMeta) ToInjectCode() string

func (*StructMeta) Visit

func (vi *StructMeta) Visit(node ast.Node) ast.Visitor

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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