Validator#

Generates a Validate() error method. Currently it checks that non-empty string fields are not left as their zero value — other types (numbers, bools, etc.) are not validated. Enabled by default; disable with -validate=false.

gcraft generate -type User -src ./user.go
type User struct {
	Name  string
	Email string
	Age   int
}

Generates:

func (v User) Validate() error {
	if v.Name == "" {
		return fmt.Errorf("User.Name is required")
	}
	if v.Email == "" {
		return fmt.Errorf("User.Email is required")
	}
	return nil
}
if err := user.Validate(); err != nil {
    log.Fatal(err)
}