var errIgnoredField … type isZeroer … var isZeroerType … type structFields … type structField … func makeStructFields(root reflect.Type) (structFields, *SemanticError) { … } type fieldOptions … // parseFieldOptions parses the `json` tag in a Go struct field as // a structured set of options configuring parameters such as // the JSON member name and other features. // As a special case, it returns errIgnoredField if the field is ignored. func parseFieldOptions(sf reflect.StructField) (out fieldOptions, err error) { … } func consumeTagOption(in string) (string, int, error) { … } func isLetterOrDigit(r rune) bool { … }