fields

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Oct 7, 2019 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Field

type Field struct {
	Type            string
	RepetitionTypes RepetitionTypes
	FieldNames      []string
	ColumnNames     []string
	FieldTypes      []string
	Seen            RepetitionTypes
	TypeName        string
	FieldType       string
	ParquetType     string
	Category        string
}

Field holds metadata that is required by parquetgen in order to generate code.

func (Field) Child

func (f Field) Child(i int) Field

Child returns a sub-field based on i

func (Field) Copy added in v0.3.4

func (f Field) Copy() Field

Copy returns a deep copy of the field

func (Field) DefIndex

func (f Field) DefIndex(def int) int

DefIndex calculates the index of the nested field with the given definition level.

func (Field) Init added in v0.3.4

func (f Field) Init(def, rep int) string

Init is called by parquetgen's templates to generate the code that writes to a struct's field (for example: x.Friend.Hobby = &Item{})

func (Field) MaxDef

func (f Field) MaxDef() int

MaxDef cacluates the largest possible definition level for the nested field.

func (Field) MaxRep

func (f Field) MaxRep() int

MaxRep cacluates the largest possible repetition level for the nested field.

func (Field) NilField

func (f Field) NilField(n int) (string, RepetitionType, int, int)

NilField finds the nth field that is optional and returns some information about it.

func (Field) Optional

func (f Field) Optional() bool

Optional wraps RepetitionTypes.Optional()

func (Field) Parent

func (f Field) Parent(i int) Field

Parent returns a parent field based on i

func (Field) Path

func (f Field) Path() string

Path creates gocode for initializing a string slice in a go template

func (Field) RepCases

func (f Field) RepCases(seen RepetitionTypes) []RepCase

RepCases returns a RepCase slice based on the field types and what sub-fields have already been seen.

func (Field) Repeated

func (f Field) Repeated() bool

Repeated wraps RepetitionTypes.Repeated()

func (Field) Required

func (f Field) Required() bool

Required wraps RepetitionTypes.Required()

type RepCase

type RepCase struct {
	// Case is the code for a switch case (for example: case 0:)
	Case string
	// Rep is the repetition level that is handled by the switch case.
	Rep int
}

RepCase is used by parquetgen to generate code.

type RepetitionType

type RepetitionType int

RepetitionType is an enum of the possible parquet repetition types

const (
	Unseen   RepetitionType = -1
	Required RepetitionType = 0
	Optional RepetitionType = 1
	Repeated RepetitionType = 2
)

func Seen added in v0.3.4

func Seen(i int, flds []Field) []RepetitionType

Seen counts how many sub-fields have been previously processed so that some of the cases and if statements can be skipped when re-assembling records

type RepetitionTypes

type RepetitionTypes []RepetitionType

RepetitionTypes provides several functions used by parquetgen's go templates to generate code.

func (RepetitionTypes) Def added in v0.3.4

func (r RepetitionTypes) Def(def int) RepetitionType

Def returns the repetition type for the definition level

func (RepetitionTypes) MaxDef

func (r RepetitionTypes) MaxDef() uint8

MaxDef returns the largest definition level

func (RepetitionTypes) MaxRep

func (r RepetitionTypes) MaxRep() uint8

MaxRep returns the largest repetition level

func (RepetitionTypes) NRepeated added in v0.3.4

func (r RepetitionTypes) NRepeated(i int) bool

NRepeated figures out if the sub-field at position i is repeated.

func (RepetitionTypes) Optional added in v0.3.4

func (r RepetitionTypes) Optional() bool

Optional figures out if there is an optional field

func (RepetitionTypes) Repeated added in v0.3.4

func (r RepetitionTypes) Repeated() bool

Repeated figures out if there is a repeated field

func (RepetitionTypes) Required added in v0.3.4

func (r RepetitionTypes) Required() bool

Required figures out if there are no optional or repeated fields

Jump to

Keyboard shortcuts

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