mirror of
https://github.com/dolthub/dolt.git
synced 2026-02-04 18:49:00 -06:00
Instead of using the name of the type we now use the index of the type in the Package that defines it.
116 lines
2.6 KiB
Go
116 lines
2.6 KiB
Go
// This file was generated by nomdl/codegen.
|
|
|
|
package test
|
|
|
|
import (
|
|
"github.com/attic-labs/noms/ref"
|
|
"github.com/attic-labs/noms/types"
|
|
)
|
|
|
|
var __testPackageInFile_enum_struct_CachedRef = __testPackageInFile_enum_struct_Ref()
|
|
|
|
// This function builds up a Noms value that describes the type
|
|
// package implemented by this file and registers it with the global
|
|
// type package definition cache.
|
|
func __testPackageInFile_enum_struct_Ref() ref.Ref {
|
|
p := types.PackageDef{
|
|
Types: types.ListOfTypeRefDef{
|
|
|
|
types.MakeEnumTypeRef("Handedness", "right", "left", "switch"),
|
|
types.MakeStructTypeRef("EnumStruct",
|
|
[]types.Field{
|
|
types.Field{"hand", types.MakeTypeRef(ref.Ref{}, 0), false},
|
|
},
|
|
types.Choices{},
|
|
),
|
|
},
|
|
}.New()
|
|
return types.RegisterPackage(&p)
|
|
}
|
|
|
|
// Handedness
|
|
|
|
type Handedness uint32
|
|
|
|
const (
|
|
Right Handedness = iota
|
|
Left
|
|
Switch
|
|
)
|
|
|
|
// EnumStruct
|
|
|
|
type EnumStruct struct {
|
|
m types.Map
|
|
}
|
|
|
|
func NewEnumStruct() EnumStruct {
|
|
return EnumStruct{types.NewMap(
|
|
types.NewString("$type"), types.MakeTypeRef(__testPackageInFile_enum_struct_CachedRef, 1),
|
|
types.NewString("hand"), types.UInt32(0),
|
|
)}
|
|
}
|
|
|
|
type EnumStructDef struct {
|
|
Hand Handedness
|
|
}
|
|
|
|
func (def EnumStructDef) New() EnumStruct {
|
|
return EnumStruct{
|
|
types.NewMap(
|
|
types.NewString("$type"), types.MakeTypeRef(__testPackageInFile_enum_struct_CachedRef, 1),
|
|
types.NewString("hand"), types.UInt32(def.Hand),
|
|
)}
|
|
}
|
|
|
|
func (s EnumStruct) Def() (d EnumStructDef) {
|
|
d.Hand = Handedness(s.m.Get(types.NewString("hand")).(types.UInt32))
|
|
return
|
|
}
|
|
|
|
var __typeRefForEnumStruct = types.MakeTypeRef(__testPackageInFile_enum_struct_CachedRef, 1)
|
|
|
|
func (m EnumStruct) TypeRef() types.TypeRef {
|
|
return __typeRefForEnumStruct
|
|
}
|
|
|
|
func init() {
|
|
types.RegisterFromValFunction(__typeRefForEnumStruct, func(v types.Value) types.NomsValue {
|
|
return EnumStructFromVal(v)
|
|
})
|
|
}
|
|
|
|
func EnumStructFromVal(val types.Value) EnumStruct {
|
|
// TODO: Validate here
|
|
return EnumStruct{val.(types.Map)}
|
|
}
|
|
|
|
func (s EnumStruct) NomsValue() types.Value {
|
|
return s.m
|
|
}
|
|
|
|
func (s EnumStruct) Equals(other types.Value) bool {
|
|
if other, ok := other.(EnumStruct); ok {
|
|
return s.m.Equals(other.m)
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (s EnumStruct) Ref() ref.Ref {
|
|
return s.m.Ref()
|
|
}
|
|
|
|
func (s EnumStruct) Chunks() (futures []types.Future) {
|
|
futures = append(futures, s.TypeRef().Chunks()...)
|
|
futures = append(futures, s.m.Chunks()...)
|
|
return
|
|
}
|
|
|
|
func (s EnumStruct) Hand() Handedness {
|
|
return Handedness(s.m.Get(types.NewString("hand")).(types.UInt32))
|
|
}
|
|
|
|
func (s EnumStruct) SetHand(val Handedness) EnumStruct {
|
|
return EnumStruct{s.m.Set(types.NewString("hand"), types.UInt32(val))}
|
|
}
|