Getting Started#
gcraft parses a struct or interface with go/ast and writes a <type>_gen.go file next to it — no reflection, no runtime dependency on gcraft itself.
Your first generation#
// user.go
package model
type User struct {
Name string
Email string
Age int
}gcraft generate -type User -src ./user.goThis creates user_gen.go with a Builder, Validator, and Clone method, all enabled by default.
Disable specific generators#
gcraft generate -type Repository -src ./repo.go -builder=falseCustom output path#
gcraft generate -type Order -src ./models/ -out ./models/order_gen.goAll flags#
gcraft generate -type [flags] -builder generate Builder pattern (default true)
-clone generate Clone method (default true)
-mock generate Mock, interfaces only (default true)
-out string output file (default: _gen.go)
-src string source file or directory (default “.”)
-type string type name to generate for (required)
-validate generate Validator (default true)
Next: read about each generator — Builder, Validator, Clone, Mock.