avrotypegen

package
v0.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 28, 2023 License: MIT Imports: 1 Imported by: 0

Documentation

Overview

Package avrotypegen holds types that are used by generated Avro Go code. This is an implementation detail and this might change over time.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AvroRecord

type AvroRecord interface {
	AvroRecord() RecordInfo
}

AvroRecord is implemented by Go types generated by the avrogo command.

type Null

type Null struct{}

Null represents the Avro null type. Its only JSON representation is null.

func (Null) MarshalJSON

func (Null) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler by returning "null".

func (Null) UnmarshalJSON

func (Null) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler by requiring the JSON value to be null.

type RecordInfo

type RecordInfo struct {
	// Schema holds the Avro schema of the record.
	Schema string

	// Required holds whether fields are required.
	// If a field is required, it has no default value.
	Required []bool

	// Defaults holds default values for the fields.
	// Each item corresponds to the field at that index and returns
	// a newly created default value for the field.
	// An entry is only consulted if Required is false for that field.
	// Missing or nil entries are assumed to default to the zero
	// value for the type.
	Defaults []func() interface{}

	// Unions holds entries for union fields.
	// Each item corresponds to the field at that index
	// and holds slice with one value for each member
	// of the union, of type *T, where T is the type used
	// for that member of the union.
	Unions []UnionInfo
}

RecordInfo holds information about how a Go type relates to an Avro schema.

type UnionInfo

type UnionInfo struct {
	// Type holds a value of type *T where T is
	// the type described by the TypeInfo,
	// except when the TypeInfo represents the null
	// type, in which case Type will be nil.
	Type interface{}

	// When the UnionInfo describes a union,
	// Union holds an entry for each member
	// of the union.
	// The info can be omitted if Type is a pointer
	// and the union is ["null", T].
	Union []UnionInfo
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL