diff --git a/README.md b/README.md index 7843374..b04c0b9 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,7 @@ -Command gencodec generates marshaling methods for struct types. +Command gencodec generates marshaling methods for Go struct types. -When gencodec is invoked on a directory and type name, it creates a Go source file -containing JSON and YAML marshaling methods for the type. The generated methods add -features which the standard json package cannot offer. +The generated methods add features which json and other marshaling packages cannot offer. - gencodec -dir . -type MyType -out mytype_json.go + gencodec -dir . -type MyType -formats json,yaml,toml -out mytype_json.go -### Struct Tags - -All fields are required unless the "optional" struct tag is present. The generated -unmarshaling method returns an error if a required field is missing. Other struct tags are -carried over as is. The standard "json" and "yaml" tags can be used to rename a field when -marshaling. - -Example: - - type foo struct { - Required string - Optional string `optional:""` - Renamed string `json:"otherName"` - } - -### Field Type Overrides - -An invocation of gencodec can specify an additional 'field override' struct from which -marshaling type replacements are taken. If the override struct contains a field whose name -matches the original type, the generated marshaling methods will use the overridden type -and convert to and from the original field type. - -In this example, the specialString type implements json.Unmarshaler to enforce additional -parsing rules. When json.Unmarshal is used with type foo, the specialString unmarshaler -will be used to parse the value of SpecialField. - - //go:generate gencodec -dir . -type foo -field-override fooMarshaling -out foo_json.go - - type foo struct { - Field string - SpecialField string - } - - type fooMarshaling struct { - SpecialField specialString // overrides type of SpecialField when marshaling/unmarshaling - } +See [the documentation for more details](https://godoc.org/github.com/fjl/gencodec).