一些 Golang 代码自动生成工具
go get -u github.com/zhaolion/gengo/...
根据项目里面的接口自动生成带 //go:generate
golang/mock 文件,方便维护你的 gomock 代码
install:
go install github.com/zhaolion/gengo/cmd/gomock
usage:
gomock -packagesBase={your package go path base} -packagesDir="." -targetDoc="mock/doc.go" -targetPrefix="" -targetPackage="mock"
go generate ./mock/...
自动生成 struct
一些方法
MarshalJSONBinary() ([]byte, error)
UnmarshalJSONBinary(data []byte) error
String() string
选择不实现 以下方法是因为:
生成MarshalJSON
方法存在嵌套结构体出现goroutine stack exceeds
问题
生成UnmarshalJSON
方法存在嵌套结构体出现goroutine stack exceeds
问题
安装 marshal-gen
go install github.com/zhaolion/gengo/cmd/autogen/marshal-gen
在你的模型文件中添加 go generate 注释
- 参考 example
//go:generate marshal-gen -i github.com/zhaolion/gengo/example/marshal-gen/model
go generate it
go generate ./...
自动生成 struct
一些方法
func (t T) DeepCopy() T
or
func (t *T) DeepCopy() *T
func (t T) DeepCopyInto(t *T)
or
func (t *T) DeepCopyInto(t *T)
安装 marshal-gen
go install github.com/zhaolion/gengo/cmd/autogen/deepcopy-gen
在你的包文件中添加 go generate 注释
- 参考 example
// model test model structs
//
// gengo:deepcopy=package
//
package model
//go:generate deepcopy-gen -i github.com/zhaolion/gengo/example/marshal-gen/model