Documentation ¶
Overview ¶
Code generated by mkunion. DO NOT EDIT.
Code generated by mkunion. DO NOT EDIT.
Index ¶
- func As[A ...](x Schema) (A, bool)
- func AsDefault[A ...](x Schema, def A) A
- func BinaryToJSON(x *Binary) ([]byte, error)
- func BoolToJSON(x *Bool) ([]byte, error)
- func Compare(a, b Schema) int
- func FormatUnionNameUsingFullName(t reflect.Type) string
- func FormatUnionNameUsingTypeName(t reflect.Type) string
- func FormatUnionNameUsingTypeNameWithPackage(t reflect.Type) string
- func ListToJSON(x *List) ([]byte, error)
- func LocationAnythingToJSON(x *LocationAnything) ([]byte, error)
- func LocationFieldToJSON(x *LocationField) ([]byte, error)
- func LocationIndexToJSON(x *LocationIndex) ([]byte, error)
- func LocationToJSON(x Location) ([]byte, error)
- func LocationToStr(location []Location) string
- func MapToJSON(x *Map) ([]byte, error)
- func MatchLocation[TOut any](x Location, f1 func(x *LocationField) TOut, f2 func(x *LocationIndex) TOut, ...) TOut
- func MatchLocationR2[TOut1, TOut2 any](x Location, f1 func(x *LocationField) (TOut1, TOut2), ...) (TOut1, TOut2)
- func MatchSchema[TOut any](x Schema, f1 func(x *None) TOut, f2 func(x *Bool) TOut, ...) TOut
- func MatchSchemaR2[TOut1, TOut2 any](x Schema, f1 func(x *None) (TOut1, TOut2), f2 func(x *Bool) (TOut1, TOut2), ...) (TOut1, TOut2)
- func MustMatchLocation[TOut any](x Location, f1 func(x *LocationField) TOut, f2 func(x *LocationIndex) TOut, ...) TOut
- func MustMatchLocationR0(x Location, f1 func(x *LocationField), f2 func(x *LocationIndex), ...)
- func MustMatchLocationR2[TOut1, TOut2 any](x Location, f1 func(x *LocationField) (TOut1, TOut2), ...) (TOut1, TOut2)
- func MustMatchSchema[TOut any](x Schema, f1 func(x *None) TOut, f2 func(x *Bool) TOut, ...) TOut
- func MustMatchSchemaR0(x Schema, f1 func(x *None), f2 func(x *Bool), f3 func(x *Number), ...)
- func MustMatchSchemaR2[TOut1, TOut2 any](x Schema, f1 func(x *None) (TOut1, TOut2), f2 func(x *Bool) (TOut1, TOut2), ...) (TOut1, TOut2)
- func MustToGo(x Schema, options ...goConfigFunc) any
- func NoneToJSON(x *None) ([]byte, error)
- func NumberToJSON(x *Number) ([]byte, error)
- func Reduce[A any](data Schema, init A, fn func(Schema, A) A) A
- func ReduceLocationBreadthFirst[A any](r LocationReducer[A], v Location, init A) A
- func ReduceLocationDepthFirst[A any](r LocationReducer[A], v Location, init A) A
- func ReduceSchemaBreadthFirst[A any](r SchemaReducer[A], v Schema, init A) A
- func ReduceSchemaDepthFirst[A any](r SchemaReducer[A], v Schema, init A) A
- func RegisterRules(xs []RuleMatcher)
- func RegisterUnionTypes[A any](x *UnionVariants[A])
- func RegisterWellDefinedTypesConversion[T any](from func(T) Schema, to func(Schema) T)
- func SchemaToJSON(x Schema) ([]byte, error)
- func SetDefaultUnionTypeFormatter(f UnionFormatFunc)
- func StringToJSON(x *String) ([]byte, error)
- func ToDynamoDB(x Schema) types.AttributeValue
- func ToGo(x Schema, options ...goConfigFunc) (any, error)
- func ToGoG[A any](x Schema, options ...goConfigFunc) (A, error)
- func ToJSON(schema Schema) ([]byte, error)
- func UnionOf(t reflect.Type) (reflect.Type, []reflect.Type, bool)
- func WithDefaultListDef(def TypeListDefinition) goConfigFunc
- func WithDefaultMaoDef(def TypeMapDefinition) goConfigFunc
- func WithExtraRules(rules ...RuleMatcher) goConfigFunc
- func WithOnlyTheseRules(rules ...RuleMatcher) goConfigFunc
- func WithRulesFromRegistry(registry *Registry) goConfigFunc
- func WithUnionFormatter(f UnionFormatFunc) goConfigFunc
- func WithWellDefinedTypeConversion[T any](from func(T) Schema, to func(Schema) T) goConfigFunc
- func WithoutDefaultRegistry() goConfigFunc
- type Acc
- type Binary
- type Bool
- type Field
- type List
- type ListBuilder
- type Location
- type LocationAnything
- type LocationBreadthFirstVisitor
- type LocationDefaultReduction
- func (t *LocationDefaultReduction[A]) ReduceLocationAnything(x *LocationAnything, agg A) (result A, stop bool)
- func (t *LocationDefaultReduction[A]) ReduceLocationField(x *LocationField, agg A) (result A, stop bool)
- func (t *LocationDefaultReduction[A]) ReduceLocationIndex(x *LocationIndex, agg A) (result A, stop bool)
- type LocationDefaultVisitor
- type LocationDepthFirstVisitor
- type LocationField
- type LocationIndex
- type LocationReducer
- type LocationUnionJSON
- type LocationVisitor
- type Map
- type MapBuilder
- type Marshaler
- type NativeList
- type NativeMap
- type None
- type Number
- type Part
- type PathAst
- type Registry
- type RuleMatcher
- type Schema
- func FromDynamoDB(x types.AttributeValue) (Schema, error)
- func FromGo(x any, options ...goConfigFunc) Schema
- func FromJSON(data []byte) (Schema, error)
- func Get(data Schema, location string) Schema
- func GetLocation(data Schema, locations []Location) Schema
- func SchemaFromJSON(x []byte) (Schema, error)
- func UnwrapDynamoDB(data Schema) (Schema, error)
- type SchemaBreadthFirstVisitor
- func (d *SchemaBreadthFirstVisitor[A]) VisitBinary(v *Binary) any
- func (d *SchemaBreadthFirstVisitor[A]) VisitBool(v *Bool) any
- func (d *SchemaBreadthFirstVisitor[A]) VisitList(v *List) any
- func (d *SchemaBreadthFirstVisitor[A]) VisitMap(v *Map) any
- func (d *SchemaBreadthFirstVisitor[A]) VisitNone(v *None) any
- func (d *SchemaBreadthFirstVisitor[A]) VisitNumber(v *Number) any
- func (d *SchemaBreadthFirstVisitor[A]) VisitString(v *String) any
- type SchemaDefaultReduction
- func (t *SchemaDefaultReduction[A]) ReduceBinary(x *Binary, agg A) (result A, stop bool)
- func (t *SchemaDefaultReduction[A]) ReduceBool(x *Bool, agg A) (result A, stop bool)
- func (t *SchemaDefaultReduction[A]) ReduceList(x *List, agg A) (result A, stop bool)
- func (t *SchemaDefaultReduction[A]) ReduceMap(x *Map, agg A) (result A, stop bool)
- func (t *SchemaDefaultReduction[A]) ReduceNone(x *None, agg A) (result A, stop bool)
- func (t *SchemaDefaultReduction[A]) ReduceNumber(x *Number, agg A) (result A, stop bool)
- func (t *SchemaDefaultReduction[A]) ReduceString(x *String, agg A) (result A, stop bool)
- type SchemaDefaultVisitor
- func (t *SchemaDefaultVisitor[A]) VisitBinary(v *Binary) any
- func (t *SchemaDefaultVisitor[A]) VisitBool(v *Bool) any
- func (t *SchemaDefaultVisitor[A]) VisitList(v *List) any
- func (t *SchemaDefaultVisitor[A]) VisitMap(v *Map) any
- func (t *SchemaDefaultVisitor[A]) VisitNone(v *None) any
- func (t *SchemaDefaultVisitor[A]) VisitNumber(v *Number) any
- func (t *SchemaDefaultVisitor[A]) VisitString(v *String) any
- type SchemaDepthFirstVisitor
- func (d *SchemaDepthFirstVisitor[A]) VisitBinary(v *Binary) any
- func (d *SchemaDepthFirstVisitor[A]) VisitBool(v *Bool) any
- func (d *SchemaDepthFirstVisitor[A]) VisitList(v *List) any
- func (d *SchemaDepthFirstVisitor[A]) VisitMap(v *Map) any
- func (d *SchemaDepthFirstVisitor[A]) VisitNone(v *None) any
- func (d *SchemaDepthFirstVisitor[A]) VisitNumber(v *Number) any
- func (d *SchemaDepthFirstVisitor[A]) VisitString(v *String) any
- type SchemaReducer
- type SchemaUnionJSON
- type SchemaVisitor
- type SelfUnmarshallingStructBuilder
- type String
- type StructBuilder
- type StructDefinition
- type TypeListDefinition
- type TypeMapDefinition
- type UnionFormatFunc
- type UnionInformationRule
- type UnionMap
- type UnionVariants
- func (u *UnionVariants[A]) IsUnionOrUnionType(t reflect.Type) bool
- func (u *UnionVariants[A]) MapDefFor(x *Map, path []string, config *goConfig) (TypeMapDefinition, bool)
- func (u *UnionVariants[A]) SchemaToUnionType(x any, schema Schema, config *goConfig) (Schema, bool)
- func (u *UnionVariants[A]) UnionType() reflect.Type
- func (u *UnionVariants[A]) VariantsTypes() []reflect.Type
- type Unmarshaler
- type WellDefinedFromToStrategy
- type WhenField
- type WrapInMap
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BinaryToJSON ¶ added in v1.20.0
func BoolToJSON ¶ added in v1.20.0
func FormatUnionNameUsingFullName ¶ added in v1.9.0
func FormatUnionNameUsingTypeName ¶ added in v1.9.0
func FormatUnionNameUsingTypeNameWithPackage ¶ added in v1.9.0
func ListToJSON ¶ added in v1.20.0
func LocationAnythingToJSON ¶ added in v1.20.0
func LocationAnythingToJSON(x *LocationAnything) ([]byte, error)
func LocationFieldToJSON ¶ added in v1.20.0
func LocationFieldToJSON(x *LocationField) ([]byte, error)
func LocationIndexToJSON ¶ added in v1.20.0
func LocationIndexToJSON(x *LocationIndex) ([]byte, error)
func LocationToJSON ¶ added in v1.20.0
func LocationToStr ¶ added in v1.19.0
func MatchLocation ¶ added in v1.19.0
func MatchLocation[TOut any]( x Location, f1 func(x *LocationField) TOut, f2 func(x *LocationIndex) TOut, f3 func(x *LocationAnything) TOut, df func(x Location) TOut, ) TOut
func MatchLocationR2 ¶ added in v1.19.0
func MatchLocationR2[TOut1, TOut2 any]( x Location, f1 func(x *LocationField) (TOut1, TOut2), f2 func(x *LocationIndex) (TOut1, TOut2), f3 func(x *LocationAnything) (TOut1, TOut2), df func(x Location) (TOut1, TOut2), ) (TOut1, TOut2)
func MatchSchema ¶ added in v1.10.0
func MatchSchemaR2 ¶ added in v1.10.0
func MatchSchemaR2[TOut1, TOut2 any]( x Schema, f1 func(x *None) (TOut1, TOut2), f2 func(x *Bool) (TOut1, TOut2), f3 func(x *Number) (TOut1, TOut2), f4 func(x *String) (TOut1, TOut2), f5 func(x *Binary) (TOut1, TOut2), f6 func(x *List) (TOut1, TOut2), f7 func(x *Map) (TOut1, TOut2), df func(x Schema) (TOut1, TOut2), ) (TOut1, TOut2)
func MustMatchLocation ¶ added in v1.19.0
func MustMatchLocation[TOut any]( x Location, f1 func(x *LocationField) TOut, f2 func(x *LocationIndex) TOut, f3 func(x *LocationAnything) TOut, ) TOut
func MustMatchLocationR0 ¶ added in v1.19.0
func MustMatchLocationR0( x Location, f1 func(x *LocationField), f2 func(x *LocationIndex), f3 func(x *LocationAnything), )
func MustMatchLocationR2 ¶ added in v1.19.0
func MustMatchLocationR2[TOut1, TOut2 any]( x Location, f1 func(x *LocationField) (TOut1, TOut2), f2 func(x *LocationIndex) (TOut1, TOut2), f3 func(x *LocationAnything) (TOut1, TOut2), ) (TOut1, TOut2)
func MustMatchSchema ¶ added in v1.7.3
func MustMatchSchemaR0 ¶ added in v1.14.1
func MustMatchSchemaR2 ¶ added in v1.7.3
func MustMatchSchemaR2[TOut1, TOut2 any]( x Schema, f1 func(x *None) (TOut1, TOut2), f2 func(x *Bool) (TOut1, TOut2), f3 func(x *Number) (TOut1, TOut2), f4 func(x *String) (TOut1, TOut2), f5 func(x *Binary) (TOut1, TOut2), f6 func(x *List) (TOut1, TOut2), f7 func(x *Map) (TOut1, TOut2), ) (TOut1, TOut2)
func NoneToJSON ¶ added in v1.20.0
func NumberToJSON ¶ added in v1.20.0
func ReduceLocationBreadthFirst ¶ added in v1.19.0
func ReduceLocationBreadthFirst[A any](r LocationReducer[A], v Location, init A) A
func ReduceLocationDepthFirst ¶ added in v1.19.0
func ReduceLocationDepthFirst[A any](r LocationReducer[A], v Location, init A) A
func ReduceSchemaBreadthFirst ¶ added in v1.7.3
func ReduceSchemaBreadthFirst[A any](r SchemaReducer[A], v Schema, init A) A
func ReduceSchemaDepthFirst ¶ added in v1.7.3
func ReduceSchemaDepthFirst[A any](r SchemaReducer[A], v Schema, init A) A
func RegisterRules ¶ added in v1.7.2
func RegisterRules(xs []RuleMatcher)
func RegisterUnionTypes ¶ added in v1.9.0
func RegisterUnionTypes[A any](x *UnionVariants[A])
func RegisterWellDefinedTypesConversion ¶ added in v1.20.0
func SchemaToJSON ¶ added in v1.20.0
func SetDefaultUnionTypeFormatter ¶ added in v1.9.0
func SetDefaultUnionTypeFormatter(f UnionFormatFunc)
func StringToJSON ¶ added in v1.20.0
func ToDynamoDB ¶ added in v1.7.7
func ToDynamoDB(x Schema) types.AttributeValue
func WithDefaultListDef ¶ added in v1.9.0
func WithDefaultListDef(def TypeListDefinition) goConfigFunc
func WithDefaultMaoDef ¶ added in v1.9.0
func WithDefaultMaoDef(def TypeMapDefinition) goConfigFunc
func WithExtraRules ¶ added in v1.9.0
func WithExtraRules(rules ...RuleMatcher) goConfigFunc
func WithOnlyTheseRules ¶ added in v1.9.0
func WithOnlyTheseRules(rules ...RuleMatcher) goConfigFunc
func WithRulesFromRegistry ¶ added in v1.9.0
func WithRulesFromRegistry(registry *Registry) goConfigFunc
func WithUnionFormatter ¶ added in v1.9.0
func WithUnionFormatter(f UnionFormatFunc) goConfigFunc
func WithWellDefinedTypeConversion ¶ added in v1.20.0
func WithoutDefaultRegistry ¶ added in v1.9.0
func WithoutDefaultRegistry() goConfigFunc
Types ¶
type Acc ¶ added in v1.19.0
type Acc struct { Name *string `@(String|Char|RawString)` Index *int `| @Int` Any bool `| @("*") ` }
func (Acc) ToAccessor ¶ added in v1.19.0
type Binary ¶ added in v1.11.0
type Binary []byte
func BinaryFromJSON ¶ added in v1.20.0
func (*Binary) AcceptSchema ¶ added in v1.15.0
func (r *Binary) AcceptSchema(v SchemaVisitor) any
func (*Binary) UnmarshalSchema ¶ added in v1.19.0
type Bool ¶
type Bool bool
func BoolFromJSON ¶ added in v1.20.0
func (*Bool) AcceptSchema ¶ added in v1.15.0
func (r *Bool) AcceptSchema(v SchemaVisitor) any
func (*Bool) UnmarshalSchema ¶ added in v1.19.0
type Field ¶
func (*Field) MarshalJSON ¶ added in v1.20.1
func (*Field) UnmarshalJSON ¶ added in v1.20.1
type List ¶
type List []Schema
func ListFromJSON ¶ added in v1.20.0
func (*List) AcceptSchema ¶ added in v1.15.0
func (r *List) AcceptSchema(v SchemaVisitor) any
type ListBuilder ¶ added in v1.9.0
type Location ¶ added in v1.19.0
type Location interface {
AcceptLocation(g LocationVisitor) any
}
func LocationFromJSON ¶ added in v1.20.0
func MustParseLocation ¶ added in v1.19.0
func ParseLocation ¶ added in v1.19.0
type LocationAnything ¶ added in v1.19.0
type LocationAnything struct{}
func LocationAnythingFromJSON ¶ added in v1.20.0
func LocationAnythingFromJSON(x []byte) (*LocationAnything, error)
func (*LocationAnything) AcceptLocation ¶ added in v1.19.0
func (r *LocationAnything) AcceptLocation(v LocationVisitor) any
func (*LocationAnything) MarshalJSON ¶ added in v1.20.0
func (self *LocationAnything) MarshalJSON() ([]byte, error)
func (*LocationAnything) UnmarshalJSON ¶ added in v1.20.0
func (self *LocationAnything) UnmarshalJSON(x []byte) error
type LocationBreadthFirstVisitor ¶ added in v1.19.0
type LocationBreadthFirstVisitor[A any] struct { // contains filtered or unexported fields }
func (*LocationBreadthFirstVisitor[A]) VisitLocationAnything ¶ added in v1.19.0
func (d *LocationBreadthFirstVisitor[A]) VisitLocationAnything(v *LocationAnything) any
func (*LocationBreadthFirstVisitor[A]) VisitLocationField ¶ added in v1.19.0
func (d *LocationBreadthFirstVisitor[A]) VisitLocationField(v *LocationField) any
func (*LocationBreadthFirstVisitor[A]) VisitLocationIndex ¶ added in v1.19.0
func (d *LocationBreadthFirstVisitor[A]) VisitLocationIndex(v *LocationIndex) any
type LocationDefaultReduction ¶ added in v1.19.0
type LocationDefaultReduction[A any] struct { PanicOnFallback bool DefaultStopReduction bool OnLocationField func(x *LocationField, agg A) (result A, stop bool) OnLocationIndex func(x *LocationIndex, agg A) (result A, stop bool) OnLocationAnything func(x *LocationAnything, agg A) (result A, stop bool) }
func (*LocationDefaultReduction[A]) ReduceLocationAnything ¶ added in v1.19.0
func (t *LocationDefaultReduction[A]) ReduceLocationAnything(x *LocationAnything, agg A) (result A, stop bool)
func (*LocationDefaultReduction[A]) ReduceLocationField ¶ added in v1.19.0
func (t *LocationDefaultReduction[A]) ReduceLocationField(x *LocationField, agg A) (result A, stop bool)
func (*LocationDefaultReduction[A]) ReduceLocationIndex ¶ added in v1.19.0
func (t *LocationDefaultReduction[A]) ReduceLocationIndex(x *LocationIndex, agg A) (result A, stop bool)
type LocationDefaultVisitor ¶ added in v1.19.0
type LocationDefaultVisitor[A any] struct { Default A OnLocationField func(x *LocationField) A OnLocationIndex func(x *LocationIndex) A OnLocationAnything func(x *LocationAnything) A }
mkunion-extension:default_visitor
func (*LocationDefaultVisitor[A]) VisitLocationAnything ¶ added in v1.19.0
func (t *LocationDefaultVisitor[A]) VisitLocationAnything(v *LocationAnything) any
func (*LocationDefaultVisitor[A]) VisitLocationField ¶ added in v1.19.0
func (t *LocationDefaultVisitor[A]) VisitLocationField(v *LocationField) any
func (*LocationDefaultVisitor[A]) VisitLocationIndex ¶ added in v1.19.0
func (t *LocationDefaultVisitor[A]) VisitLocationIndex(v *LocationIndex) any
type LocationDepthFirstVisitor ¶ added in v1.19.0
type LocationDepthFirstVisitor[A any] struct { // contains filtered or unexported fields }
func (*LocationDepthFirstVisitor[A]) VisitLocationAnything ¶ added in v1.19.0
func (d *LocationDepthFirstVisitor[A]) VisitLocationAnything(v *LocationAnything) any
func (*LocationDepthFirstVisitor[A]) VisitLocationField ¶ added in v1.19.0
func (d *LocationDepthFirstVisitor[A]) VisitLocationField(v *LocationField) any
func (*LocationDepthFirstVisitor[A]) VisitLocationIndex ¶ added in v1.19.0
func (d *LocationDepthFirstVisitor[A]) VisitLocationIndex(v *LocationIndex) any
type LocationField ¶ added in v1.19.0
type LocationField struct {
Name string
}
func LocationFieldFromJSON ¶ added in v1.20.0
func LocationFieldFromJSON(x []byte) (*LocationField, error)
func (*LocationField) AcceptLocation ¶ added in v1.19.0
func (r *LocationField) AcceptLocation(v LocationVisitor) any
func (*LocationField) MarshalJSON ¶ added in v1.20.0
func (self *LocationField) MarshalJSON() ([]byte, error)
func (*LocationField) UnmarshalJSON ¶ added in v1.20.0
func (self *LocationField) UnmarshalJSON(x []byte) error
type LocationIndex ¶ added in v1.19.0
type LocationIndex struct {
Index int
}
func LocationIndexFromJSON ¶ added in v1.20.0
func LocationIndexFromJSON(x []byte) (*LocationIndex, error)
func (*LocationIndex) AcceptLocation ¶ added in v1.19.0
func (r *LocationIndex) AcceptLocation(v LocationVisitor) any
func (*LocationIndex) MarshalJSON ¶ added in v1.20.0
func (self *LocationIndex) MarshalJSON() ([]byte, error)
func (*LocationIndex) UnmarshalJSON ¶ added in v1.20.0
func (self *LocationIndex) UnmarshalJSON(x []byte) error
type LocationReducer ¶ added in v1.19.0
type LocationReducer[A any] interface { ReduceLocationField(x *LocationField, agg A) (result A, stop bool) ReduceLocationIndex(x *LocationIndex, agg A) (result A, stop bool) ReduceLocationAnything(x *LocationAnything, agg A) (result A, stop bool) }
mkunion-extension:reducer_dfs
type LocationUnionJSON ¶ added in v1.20.0
type LocationUnionJSON struct { Type string `json:"$type,omitempty"` LocationField json.RawMessage `json:"schema.LocationField,omitempty"` LocationIndex json.RawMessage `json:"schema.LocationIndex,omitempty"` LocationAnything json.RawMessage `json:"schema.LocationAnything,omitempty"` }
mkunion-extension:json
type LocationVisitor ¶ added in v1.19.0
type LocationVisitor interface { VisitLocationField(v *LocationField) any VisitLocationIndex(v *LocationIndex) any VisitLocationAnything(v *LocationAnything) any }
type Map ¶
func MapFromJSON ¶ added in v1.20.0
func (*Map) AcceptSchema ¶ added in v1.15.0
func (r *Map) AcceptSchema(v SchemaVisitor) any
func (*Map) UnmarshalJSON ¶ added in v1.20.0
func (*Map) UnmarshalSchema ¶ added in v1.19.0
type MapBuilder ¶ added in v1.9.0
type NativeList ¶
type NativeList struct {
// contains filtered or unexported fields
}
func (*NativeList) Append ¶ added in v1.9.0
func (s *NativeList) Append(value any) error
func (*NativeList) Build ¶ added in v1.9.0
func (s *NativeList) Build() any
func (*NativeList) NewListBuilder ¶ added in v1.9.0
func (s *NativeList) NewListBuilder() ListBuilder
type NativeMap ¶
type NativeMap struct {
// contains filtered or unexported fields
}
func (*NativeMap) NewMapBuilder ¶ added in v1.9.0
func (s *NativeMap) NewMapBuilder() MapBuilder
type None ¶
type None struct{}
func NoneFromJSON ¶ added in v1.20.0
func (*None) AcceptSchema ¶ added in v1.15.0
func (r *None) AcceptSchema(v SchemaVisitor) any
func (*None) MarshalJSON ¶ added in v1.20.0
func (*None) UnmarshalJSON ¶ added in v1.20.0
type Number ¶
type Number float64
func NumberFromJSON ¶ added in v1.20.0
func (*Number) AcceptSchema ¶ added in v1.15.0
func (r *Number) AcceptSchema(v SchemaVisitor) any
func (*Number) UnmarshalSchema ¶ added in v1.19.0
type Part ¶ added in v1.19.0
func (Part) ToLocation ¶ added in v1.19.0
type PathAst ¶ added in v1.19.0
type PathAst struct {
Parts []Part `@@ ( "." @@ )*`
}
func (PathAst) ToLocation ¶ added in v1.19.0
type Registry ¶ added in v1.7.2
type Registry struct {
// contains filtered or unexported fields
}
func NewRegistry ¶ added in v1.7.2
func NewRegistry() *Registry
func (*Registry) RegisterRules ¶ added in v1.7.2
func (r *Registry) RegisterRules(xs []RuleMatcher)
func (*Registry) SetUnionTypeFormatter ¶ added in v1.9.0
func (r *Registry) SetUnionTypeFormatter(f UnionFormatFunc)
func (*Registry) TypeFormatter ¶ added in v1.20.0
type RuleMatcher ¶
type Schema ¶ added in v1.7.3
type Schema interface {
AcceptSchema(g SchemaVisitor) any
}
func FromDynamoDB ¶ added in v1.7.7
func FromDynamoDB(x types.AttributeValue) (Schema, error)
func GetLocation ¶ added in v1.19.0
func SchemaFromJSON ¶ added in v1.20.0
func UnwrapDynamoDB ¶ added in v1.12.0
type SchemaBreadthFirstVisitor ¶ added in v1.7.3
type SchemaBreadthFirstVisitor[A any] struct { // contains filtered or unexported fields }
func (*SchemaBreadthFirstVisitor[A]) VisitBinary ¶ added in v1.11.0
func (d *SchemaBreadthFirstVisitor[A]) VisitBinary(v *Binary) any
func (*SchemaBreadthFirstVisitor[A]) VisitBool ¶ added in v1.7.3
func (d *SchemaBreadthFirstVisitor[A]) VisitBool(v *Bool) any
func (*SchemaBreadthFirstVisitor[A]) VisitList ¶ added in v1.7.3
func (d *SchemaBreadthFirstVisitor[A]) VisitList(v *List) any
func (*SchemaBreadthFirstVisitor[A]) VisitMap ¶ added in v1.7.3
func (d *SchemaBreadthFirstVisitor[A]) VisitMap(v *Map) any
func (*SchemaBreadthFirstVisitor[A]) VisitNone ¶ added in v1.7.3
func (d *SchemaBreadthFirstVisitor[A]) VisitNone(v *None) any
func (*SchemaBreadthFirstVisitor[A]) VisitNumber ¶ added in v1.7.3
func (d *SchemaBreadthFirstVisitor[A]) VisitNumber(v *Number) any
func (*SchemaBreadthFirstVisitor[A]) VisitString ¶ added in v1.7.3
func (d *SchemaBreadthFirstVisitor[A]) VisitString(v *String) any
type SchemaDefaultReduction ¶ added in v1.7.3
type SchemaDefaultReduction[A any] struct { PanicOnFallback bool DefaultStopReduction bool OnNone func(x *None, agg A) (result A, stop bool) OnBool func(x *Bool, agg A) (result A, stop bool) OnNumber func(x *Number, agg A) (result A, stop bool) OnString func(x *String, agg A) (result A, stop bool) OnBinary func(x *Binary, agg A) (result A, stop bool) OnList func(x *List, agg A) (result A, stop bool) OnMap func(x *Map, agg A) (result A, stop bool) }
func (*SchemaDefaultReduction[A]) ReduceBinary ¶ added in v1.11.0
func (t *SchemaDefaultReduction[A]) ReduceBinary(x *Binary, agg A) (result A, stop bool)
func (*SchemaDefaultReduction[A]) ReduceBool ¶ added in v1.7.3
func (t *SchemaDefaultReduction[A]) ReduceBool(x *Bool, agg A) (result A, stop bool)
func (*SchemaDefaultReduction[A]) ReduceList ¶ added in v1.7.3
func (t *SchemaDefaultReduction[A]) ReduceList(x *List, agg A) (result A, stop bool)
func (*SchemaDefaultReduction[A]) ReduceMap ¶ added in v1.7.3
func (t *SchemaDefaultReduction[A]) ReduceMap(x *Map, agg A) (result A, stop bool)
func (*SchemaDefaultReduction[A]) ReduceNone ¶ added in v1.7.3
func (t *SchemaDefaultReduction[A]) ReduceNone(x *None, agg A) (result A, stop bool)
func (*SchemaDefaultReduction[A]) ReduceNumber ¶ added in v1.7.3
func (t *SchemaDefaultReduction[A]) ReduceNumber(x *Number, agg A) (result A, stop bool)
func (*SchemaDefaultReduction[A]) ReduceString ¶ added in v1.7.3
func (t *SchemaDefaultReduction[A]) ReduceString(x *String, agg A) (result A, stop bool)
type SchemaDefaultVisitor ¶ added in v1.7.3
type SchemaDefaultVisitor[A any] struct { Default A OnNone func(x *None) A OnBool func(x *Bool) A OnNumber func(x *Number) A OnString func(x *String) A OnBinary func(x *Binary) A OnList func(x *List) A OnMap func(x *Map) A }
mkunion-extension:default_visitor
func (*SchemaDefaultVisitor[A]) VisitBinary ¶ added in v1.11.0
func (t *SchemaDefaultVisitor[A]) VisitBinary(v *Binary) any
func (*SchemaDefaultVisitor[A]) VisitBool ¶ added in v1.7.3
func (t *SchemaDefaultVisitor[A]) VisitBool(v *Bool) any
func (*SchemaDefaultVisitor[A]) VisitList ¶ added in v1.7.3
func (t *SchemaDefaultVisitor[A]) VisitList(v *List) any
func (*SchemaDefaultVisitor[A]) VisitMap ¶ added in v1.7.3
func (t *SchemaDefaultVisitor[A]) VisitMap(v *Map) any
func (*SchemaDefaultVisitor[A]) VisitNone ¶ added in v1.7.3
func (t *SchemaDefaultVisitor[A]) VisitNone(v *None) any
func (*SchemaDefaultVisitor[A]) VisitNumber ¶ added in v1.7.3
func (t *SchemaDefaultVisitor[A]) VisitNumber(v *Number) any
func (*SchemaDefaultVisitor[A]) VisitString ¶ added in v1.7.3
func (t *SchemaDefaultVisitor[A]) VisitString(v *String) any
type SchemaDepthFirstVisitor ¶ added in v1.7.3
type SchemaDepthFirstVisitor[A any] struct { // contains filtered or unexported fields }
func (*SchemaDepthFirstVisitor[A]) VisitBinary ¶ added in v1.11.0
func (d *SchemaDepthFirstVisitor[A]) VisitBinary(v *Binary) any
func (*SchemaDepthFirstVisitor[A]) VisitBool ¶ added in v1.7.3
func (d *SchemaDepthFirstVisitor[A]) VisitBool(v *Bool) any
func (*SchemaDepthFirstVisitor[A]) VisitList ¶ added in v1.7.3
func (d *SchemaDepthFirstVisitor[A]) VisitList(v *List) any
func (*SchemaDepthFirstVisitor[A]) VisitMap ¶ added in v1.7.3
func (d *SchemaDepthFirstVisitor[A]) VisitMap(v *Map) any
func (*SchemaDepthFirstVisitor[A]) VisitNone ¶ added in v1.7.3
func (d *SchemaDepthFirstVisitor[A]) VisitNone(v *None) any
func (*SchemaDepthFirstVisitor[A]) VisitNumber ¶ added in v1.7.3
func (d *SchemaDepthFirstVisitor[A]) VisitNumber(v *Number) any
func (*SchemaDepthFirstVisitor[A]) VisitString ¶ added in v1.7.3
func (d *SchemaDepthFirstVisitor[A]) VisitString(v *String) any
type SchemaReducer ¶ added in v1.7.3
type SchemaReducer[A any] interface { ReduceNone(x *None, agg A) (result A, stop bool) ReduceBool(x *Bool, agg A) (result A, stop bool) ReduceNumber(x *Number, agg A) (result A, stop bool) ReduceString(x *String, agg A) (result A, stop bool) ReduceBinary(x *Binary, agg A) (result A, stop bool) ReduceList(x *List, agg A) (result A, stop bool) ReduceMap(x *Map, agg A) (result A, stop bool) }
mkunion-extension:reducer_dfs
type SchemaUnionJSON ¶ added in v1.20.0
type SchemaUnionJSON struct { Type string `json:"$type,omitempty"` None json.RawMessage `json:"schema.None,omitempty"` Bool json.RawMessage `json:"schema.Bool,omitempty"` Number json.RawMessage `json:"schema.Number,omitempty"` String json.RawMessage `json:"schema.String,omitempty"` Binary json.RawMessage `json:"schema.Binary,omitempty"` List json.RawMessage `json:"schema.List,omitempty"` Map json.RawMessage `json:"schema.Map,omitempty"` }
mkunion-extension:json
type SchemaVisitor ¶ added in v1.7.3
type SelfUnmarshallingStructBuilder ¶ added in v1.13.0
type SelfUnmarshallingStructBuilder struct {
// contains filtered or unexported fields
}
func UseSelfUnmarshallingStruct ¶ added in v1.13.0
func UseSelfUnmarshallingStruct(new func() Unmarshaler) *SelfUnmarshallingStructBuilder
func (*SelfUnmarshallingStructBuilder) NewMapBuilder ¶ added in v1.13.0
func (c *SelfUnmarshallingStructBuilder) NewMapBuilder() MapBuilder
type String ¶
type String string
func StringFromJSON ¶ added in v1.20.0
func (*String) AcceptSchema ¶ added in v1.15.0
func (r *String) AcceptSchema(v SchemaVisitor) any
func (*String) UnmarshalSchema ¶ added in v1.19.0
type StructBuilder ¶ added in v1.9.0
type StructBuilder struct {
// contains filtered or unexported fields
}
func (*StructBuilder) Build ¶ added in v1.9.0
func (s *StructBuilder) Build() any
func (*StructBuilder) Set ¶ added in v1.9.0
func (s *StructBuilder) Set(key string, value any) error
func (*StructBuilder) WithWellDefinedTypesConversion ¶ added in v1.20.0
func (s *StructBuilder) WithWellDefinedTypesConversion(from func(x Schema, r reflect.Type) any)
type StructDefinition ¶ added in v1.9.0
type StructDefinition struct {
// contains filtered or unexported fields
}
func (*StructDefinition) NewMapBuilder ¶ added in v1.9.0
func (s *StructDefinition) NewMapBuilder() MapBuilder
type TypeListDefinition ¶ added in v1.9.0
type TypeListDefinition interface {
NewListBuilder() ListBuilder
}
type TypeMapDefinition ¶ added in v1.9.0
type TypeMapDefinition interface {
NewMapBuilder() MapBuilder
}
func UseReflectionUnmarshallingStruct ¶ added in v1.13.0
func UseReflectionUnmarshallingStruct(t any) TypeMapDefinition
func UseStruct ¶
func UseStruct(t any) TypeMapDefinition
func UseTypeDef ¶ added in v1.9.0
func UseTypeDef(definition TypeMapDefinition) TypeMapDefinition
type UnionFormatFunc ¶ added in v1.9.0
type UnionInformationRule ¶ added in v1.19.0
type UnionMap ¶ added in v1.9.0
type UnionMap struct {
// contains filtered or unexported fields
}
func (*UnionMap) NewMapBuilder ¶ added in v1.9.0
func (u *UnionMap) NewMapBuilder() MapBuilder
type UnionVariants ¶ added in v1.9.0
type UnionVariants[A any] struct { // contains filtered or unexported fields }
func MustDefineUnion ¶ added in v1.9.0
func MustDefineUnion[A any](xs ...A) *UnionVariants[A]
func SchemaSchemaDef ¶ added in v1.19.0
func SchemaSchemaDef() *UnionVariants[Schema]
func (*UnionVariants[A]) IsUnionOrUnionType ¶ added in v1.19.0
func (u *UnionVariants[A]) IsUnionOrUnionType(t reflect.Type) bool
func (*UnionVariants[A]) MapDefFor ¶ added in v1.9.0
func (u *UnionVariants[A]) MapDefFor(x *Map, path []string, config *goConfig) (TypeMapDefinition, bool)
func (*UnionVariants[A]) SchemaToUnionType ¶ added in v1.9.0
func (u *UnionVariants[A]) SchemaToUnionType(x any, schema Schema, config *goConfig) (Schema, bool)
func (*UnionVariants[A]) UnionType ¶ added in v1.19.0
func (u *UnionVariants[A]) UnionType() reflect.Type
func (*UnionVariants[A]) VariantsTypes ¶ added in v1.19.0
func (u *UnionVariants[A]) VariantsTypes() []reflect.Type
type Unmarshaler ¶ added in v1.13.0
type WellDefinedFromToStrategy ¶ added in v1.20.0
func NewWellDefinedFromToStrategy ¶ added in v1.20.0
func NewWellDefinedFromToStrategy[T any](from func(T) Schema, to func(Schema) T) WellDefinedFromToStrategy[any]
NewWellDefinedFromToStrategy assumption is that from and to functions are symmetrical and that function works on values, not pointers (to reduce implementation complexity) and if there is need to do conversion on pointers, then it should be done in "runtime" wrapper (here)
type WhenField ¶
type WhenField[A any] struct { // contains filtered or unexported fields }
func WhenPath ¶
func WhenPath(path []string, setter TypeMapDefinition) *WhenField[struct{}]
Source Files ¶
- dynamo_db.go
- go.go
- json.go
- location.go
- location_location_gen.go
- location_path.go
- model.go
- model_builder_custom.go
- model_builder_native.go
- model_builder_struct.go
- model_builder_union_map.go
- model_rule_union.go
- model_rule_when_field.go
- model_rule_wrap_in_field.go
- model_schema_gen.go
- model_self_deser.go
- registry.go
- registry_well_defined_types.go
- utils.go
Click to show internal directories.
Click to hide internal directories.