Categorygithub.com/chennqqi/go-generate-examples
module
0.0.0-20240416081548-73764879b03f
Repository: https://github.com/chennqqi/go-generate-examples.git
Documentation: pkg.go.dev

# README

go-generate-examples

namedescription
goyaccGo的Yacc。
stringer实现fmt.Stringer枚举的接口。
gostringerfmt.GoStringer为枚举实现接口。
jsonenums枚举的实现json.Marshaler和json.Unmarshaler接口。
go-syncmap使用软件包作为的通用模板生成Go代码sync.Map。
go-syncpool使用软件包作为的通用模板生成Go代码sync.Pool。
go-atomicvalue使用软件包作为的通用模板生成Go代码atomic.Value。
go-nulljson使用包作为实现database/sql.Scanner和的通用模板生成Go代码database/sql/driver.Valuer。
go-enum使用包作为实现接口的通用模板生成Go代码fmt.Stringer binary, json,text,sql,yaml枚举。
go-import执行非go文件的自动导入。
gojson从示例json文档生成go结构定义。
vfsgen生成静态实现给定虚拟文件系统的vfsdata.go文件。
goreuse使用包作为通用模板通过替换定义来生成Go代码。
embedfiles将文件嵌入Go代码。
ragel状态机编译器
peachpy嵌入在Python中的x86-64汇编器,生成Go汇编
bundleBundle创建适用于包含在特定目标软件包中的源软件包的单一源文件版本。
msgpMessagePack的Go代码生成器
protobufprotobuf
thriftrwthrift
gogen-avroavro
swagger-gen-types从swagger定义中去生成代码
avo使用Go生成汇编代码
WireGo的编译时依赖注入
sumgen从sum-type声明生成接口方法实现
interface-extractor生成所需类型的接口,仅在包内使用方法。
deep-copy为给定类型创建深度复制方法。
swagger-doc自动生成swagger文件并加载swagger服务
easyjson生成高性能的JSON序列化和反序列化接口,避免使用系统默认生成的基于反射的接口
ifacepropagate生成已有结构/类型/接口导出的wrapper来为已有接口提供附加功能
enumer枚举生成text(string)/json/yaml/sql序列化、反序列化接口

references

https://blog.golang.org/generate https://www.jianshu.com/p/baee606f1056

# Packages

go:generate stringer -type=Pill.
go:generate gojson -input response.json -name Response -pkg example -subStruct -o example_json.go.
go:generate go run assets_gen.go.
go:generate goreuse -o zip.go "archive/zip".
go:generate embedfiles -pkg=example 1.jpg 2.jpg.
go:generate ragel -Z -T0 -o atoi.go atoi.rl.
go:generate python -m peachpy.x86_64 dot_product.py -S -o dot_product_amd64.s -mabi=goasm.
go:generate bundle -o zip.go archive/zip.
go:generate msgp.
go:generate protoc --go_out=.
go:generate thriftrw /no-embed-idl protos/echo.thrift.
go:generate gostringer -type=Pill.
go:generate gogen-avro .
go:generate swagger-gen-types --spec example.yaml --output example_swagger.go --package example --definition Order.
No description provided by the author
go:generate wire.
go:generate sumgen "Expr = KeyValueExpr | *CallExpr".
go:generate interface-extractor -type example.Bar.
go:generate deep-copy -o copy.go -pointer-receiver -type Bar -type Foo -type Baz .
go:generate goyacc -p "expr" example.y.
go:generate swag init.
No description provided by the author
go:generate jsonenums -type=Pill.
go:generate ifacepropagate .
json text yaml sql enumer -type=MemberState -json -transform=snake.
go:generate go-syncmap -type "Pill<int, string>"go:generate go-syncmap -type "Pill<int, time.Time>"go:generate go-syncmap -type "Pill<int, encoding/json.Token>".
go:generate go-syncpool -type "Pill<string>".
go:generate go-atomicvalue -type "Pill<time.Time>".
go:generate go-nulljson -type "Pill<time.Time>".
go:generate go-enum -type=Pill.
go:generate go-import ext.