Clone#
Generates a Clone() method. For plain value fields it’s a simple struct copy; for slice fields, gcraft generates an explicit deep copy so the clone doesn’t share the same backing array as the original. Enabled by default; disable with -clone=false.
gcraft generate -type User -src ./user.goGenerates:
func (v User) Clone() User {
c := v
return c
}copy := user.Clone()
copy.Name = "Changed"
// original `user` is untouched