Documentation ¶
Overview ¶
Package gen allows generating Go structs from avro schemas.
Index ¶
- func Struct(s string, w io.Writer, cfg Config) error
- func StructFromSchema(schema avro.Schema, w io.Writer, cfg Config) error
- type Config
- type Generator
- type LogicalType
- type OptsFunc
- func WithEncoders(b bool) OptsFunc
- func WithFullName(b bool) OptsFunc
- func WithFullSchema(b bool) OptsFunc
- func WithInitialisms(ss []string) OptsFunc
- func WithLogicalType(logicalType LogicalType) OptsFunc
- func WithPackageDoc(text string) OptsFunc
- func WithStrictTypes(b bool) OptsFunc
- func WithTemplate(template string) OptsFunc
- type TagStyle
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Config ¶
type Config struct { PackageName string Tags map[string]TagStyle FullName bool Encoders bool FullSchema bool StrictTypes bool Initialisms []string LogicalTypes []LogicalType }
Config configures the code generation.
type Generator ¶
type Generator struct {
// contains filtered or unexported fields
}
Generator generates Go structs from schemas.
func NewGenerator ¶
NewGenerator returns a generator.
type LogicalType ¶
type LogicalType struct { // Name of the LogicalType Name string // Typ returned, has to be a valid Go type Typ string // Import added as import (if not empty) Import string // ThirdPartyImport added as import (if not empty) ThirdPartyImport string }
LogicalType used when the name of the "LogicalType" field in the Avro schema matches the Name attribute.
type OptsFunc ¶
type OptsFunc func(*Generator)
OptsFunc is a function that configures a generator.
func WithEncoders ¶
WithEncoders configures the generator to generate schema and encoders on all objects.
func WithFullName ¶
WithFullName configures the generator to use the full name of a record when creating the struct name.
func WithFullSchema ¶
WithFullSchema configures the generator to store the full schema within the generation context.
func WithInitialisms ¶
WithInitialisms configures the generator to use additional custom initialisms when styling struct and field names.
func WithLogicalType ¶
func WithLogicalType(logicalType LogicalType) OptsFunc
WithLogicalType registers a LogicalType which takes precedence over the default logical types defined by this package.
func WithPackageDoc ¶
WithPackageDoc configures the generator to output the given text as a package doc comment.
func WithStrictTypes ¶
WithStrictTypes configures the generator to use strict type sizes.
func WithTemplate ¶
WithTemplate configures the generator to use a custom template provided by the user.
type TagStyle ¶
type TagStyle string
TagStyle defines the styling for a tag.
const ( // Original is a style like whAtEVer_IS_InthEInpuT. Original TagStyle = "original" // Snake is a style like im_written_in_snake_case. Snake TagStyle = "snake" // Camel is a style like imWrittenInCamelCase. Camel TagStyle = "camel" // Kebab is a style like im-written-in-kebab-case. Kebab TagStyle = "kebab" // UpperCamel is a style like ImWrittenInUpperCamel. UpperCamel TagStyle = "upper-camel" )