pkg

package
v0.0.0-...-16f1978 Latest Latest
Warning

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

Go to latest
Published: Aug 5, 2021 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	//Version 版本号
	Version = "v0.0.2"
	//PackageName 包名
	PackageName = "easyvalid"
)
View Source
const (

	//ValidFlag 匹配标识
	ValidFlag = "evalid"
)

Variables

This section is empty.

Functions

func SetExtraImport

func SetExtraImport(i string)

SetExtraImport 如果需要valid函数是可导出状态

Types

type Generator

type Generator struct {
	// contains filtered or unexported fields
}

Generator 文件生成器

func NewGenerator

func NewGenerator(pkg *packages.Package, structs []*Structure, imports []*packages.Package) *Generator

NewGenerator 获取一个生成器

func (*Generator) GenerateHeader

func (g *Generator) GenerateHeader()

GenerateHeader 打印文件头部

func (*Generator) GenerateImports

func (g *Generator) GenerateImports()

GenerateImports 打印import

func (*Generator) GenerateImportsFlag

func (g *Generator) GenerateImportsFlag()

GenerateImportsFlag 打印import

func (*Generator) GeneratePkg

func (g *Generator) GeneratePkg()

GeneratePkg 打印package名称

func (*Generator) GenerateStructuresValid

func (g *Generator) GenerateStructuresValid() (err error)

GenerateStructuresValid 生成结构体的验证内容

func (*Generator) GetPrintBuf

func (g *Generator) GetPrintBuf() bytes.Buffer

GetPrintBuf 获取文件内容

func (*Generator) Run

func (g *Generator) Run() error

Run 生成文件内容

func (*Generator) SetBuildTags

func (g *Generator) SetBuildTags(buildTags string)

SetBuildTags 外部设置构建标签

func (*Generator) SetNote

func (g *Generator) SetNote(note string)

SetNote 外部设置说明信息

func (*Generator) SetValidFuncExport

func (g *Generator) SetValidFuncExport(e bool)

SetValidFuncExport 设置是否需要方法名导出

type NodeVisitor

type NodeVisitor struct {
	// contains filtered or unexported fields
}

NodeVisitor 节点遍历器

func NewNodeVisitor

func NewNodeVisitor() *NodeVisitor

NewNodeVisitor 构建并返回新的遍历器

func (*NodeVisitor) DeclaredStructures

func (nv *NodeVisitor) DeclaredStructures() []StructInfo

DeclaredStructures 返回已经声明的结构体

func (*NodeVisitor) Visit

func (nv *NodeVisitor) Visit(node ast.Node) ast.Visitor

Visit 执行遍历

type Parser

type Parser struct {
	// contains filtered or unexported fields
}

Parser 项目解析器

func NewParser

func NewParser() *Parser

NewParser 构建并返回一个新的解析器

func (*Parser) GetImports

func (p *Parser) GetImports() []*packages.Package

GetImports 获取类中的package引用

func (*Parser) GetPkg

func (p *Parser) GetPkg() *packages.Package

GetPkg 获取被解析文件的包信息

func (*Parser) GetStructure

func (p *Parser) GetStructure(stnames []string) []*Structure

GetStructure 根据需要的结构体名称 获取已经解析的结构体

func (*Parser) GetStructures

func (p *Parser) GetStructures() []*Structure

GetStructures 获取已经声明的结构体

func (*Parser) Load

func (p *Parser) Load() error

Load 加载已经解析过的文件中的结构体

func (*Parser) Parse

func (p *Parser) Parse(path string) (err error)

Parse 解析一个文件名或文件夹

type StructInfo

type StructInfo struct {
	Name  string //结构体名称
	Alias string //注释中的结构体 方法别名 easyvalid:valid:(alias)
}

StructInfo 简单的结构体信息

type Structure

type Structure struct {
	Name          string
	Alias         string
	QualifiedName string
	FileName      string
	File          *ast.File
	Pkg           *types.Package
	Struct        *types.Struct
	NamedType     *types.Named
}

Structure 结构体

func (*Structure) GetTag

func (st *Structure) GetTag(index int, key string) (value string, ok bool)

GetTag 查找tag中的指定key 方法同 reflect.Elem().Field(i).Tag(i).Get(key)

Jump to

Keyboard shortcuts

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