mirror of
https://github.com/dolthub/dolt.git
synced 2026-01-26 10:37:04 -06:00
211 lines
4.6 KiB
Go
211 lines
4.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"
|
|
)
|
|
|
|
// 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_struct_recursive_Ref() types.Ref {
|
|
p := types.PackageDef{
|
|
Types: types.MapOfStringToTypeRefDef{
|
|
|
|
"Tree": __typeRefOfTree(),
|
|
},
|
|
}.New()
|
|
return types.Ref{R: types.RegisterPackage(&p)}
|
|
}
|
|
|
|
// Tree
|
|
|
|
type Tree struct {
|
|
m types.Map
|
|
}
|
|
|
|
func NewTree() Tree {
|
|
return Tree{types.NewMap(
|
|
types.NewString("$name"), types.NewString("Tree"),
|
|
types.NewString("$type"), types.MakeTypeRef(types.NewString("Tree"), __testPackageInFile_struct_recursive_Ref()),
|
|
types.NewString("children"), types.NewList(),
|
|
)}
|
|
}
|
|
|
|
type TreeDef struct {
|
|
Children ListOfTreeDef
|
|
}
|
|
|
|
func (def TreeDef) New() Tree {
|
|
return Tree{
|
|
types.NewMap(
|
|
types.NewString("$name"), types.NewString("Tree"),
|
|
types.NewString("$type"), types.MakeTypeRef(types.NewString("Tree"), __testPackageInFile_struct_recursive_Ref()),
|
|
types.NewString("children"), def.Children.New().NomsValue(),
|
|
)}
|
|
}
|
|
|
|
func (self Tree) Def() TreeDef {
|
|
return TreeDef{
|
|
ListOfTreeFromVal(self.m.Get(types.NewString("children"))).Def(),
|
|
}
|
|
}
|
|
|
|
// Creates and returns a Noms Value that describes Tree.
|
|
func __typeRefOfTree() types.TypeRef {
|
|
return types.MakeStructTypeRef(types.NewString("Tree"),
|
|
types.NewList(
|
|
types.NewString("children"), types.MakeCompoundTypeRef(types.NewString(""), types.ListKind, types.MakeTypeRef(types.NewString("Tree"), types.Ref{})),
|
|
),
|
|
nil)
|
|
|
|
}
|
|
|
|
func TreeFromVal(val types.Value) Tree {
|
|
// TODO: Validate here
|
|
return Tree{val.(types.Map)}
|
|
}
|
|
|
|
func (self Tree) NomsValue() types.Value {
|
|
return self.m
|
|
}
|
|
|
|
func (self Tree) Equals(other Tree) bool {
|
|
return self.m.Equals(other.m)
|
|
}
|
|
|
|
func (self Tree) Ref() ref.Ref {
|
|
return self.m.Ref()
|
|
}
|
|
|
|
func (self Tree) Type() types.TypeRef {
|
|
return self.m.Get(types.NewString("$type")).(types.TypeRef)
|
|
}
|
|
|
|
func (self Tree) Children() ListOfTree {
|
|
return ListOfTreeFromVal(self.m.Get(types.NewString("children")))
|
|
}
|
|
|
|
func (self Tree) SetChildren(val ListOfTree) Tree {
|
|
return Tree{self.m.Set(types.NewString("children"), val.NomsValue())}
|
|
}
|
|
|
|
// ListOfTree
|
|
|
|
type ListOfTree struct {
|
|
l types.List
|
|
}
|
|
|
|
func NewListOfTree() ListOfTree {
|
|
return ListOfTree{types.NewList()}
|
|
}
|
|
|
|
type ListOfTreeDef []TreeDef
|
|
|
|
func (def ListOfTreeDef) New() ListOfTree {
|
|
l := make([]types.Value, len(def))
|
|
for i, d := range def {
|
|
l[i] = d.New().NomsValue()
|
|
}
|
|
return ListOfTree{types.NewList(l...)}
|
|
}
|
|
|
|
func (self ListOfTree) Def() ListOfTreeDef {
|
|
l := make([]TreeDef, self.Len())
|
|
for i := uint64(0); i < self.Len(); i++ {
|
|
l[i] = TreeFromVal(self.l.Get(i)).Def()
|
|
}
|
|
return l
|
|
}
|
|
|
|
func ListOfTreeFromVal(val types.Value) ListOfTree {
|
|
// TODO: Validate here
|
|
return ListOfTree{val.(types.List)}
|
|
}
|
|
|
|
func (self ListOfTree) NomsValue() types.Value {
|
|
return self.l
|
|
}
|
|
|
|
func (l ListOfTree) Equals(p ListOfTree) bool {
|
|
return l.l.Equals(p.l)
|
|
}
|
|
|
|
func (l ListOfTree) Ref() ref.Ref {
|
|
return l.l.Ref()
|
|
}
|
|
|
|
func (l ListOfTree) Len() uint64 {
|
|
return l.l.Len()
|
|
}
|
|
|
|
func (l ListOfTree) Empty() bool {
|
|
return l.Len() == uint64(0)
|
|
}
|
|
|
|
func (self ListOfTree) Get(i uint64) Tree {
|
|
return TreeFromVal(self.l.Get(i))
|
|
}
|
|
|
|
func (l ListOfTree) Slice(idx uint64, end uint64) ListOfTree {
|
|
return ListOfTree{l.l.Slice(idx, end)}
|
|
}
|
|
|
|
func (self ListOfTree) Set(i uint64, val Tree) ListOfTree {
|
|
return ListOfTree{self.l.Set(i, val.NomsValue())}
|
|
}
|
|
|
|
func (l ListOfTree) Append(v ...Tree) ListOfTree {
|
|
return ListOfTree{l.l.Append(l.fromElemSlice(v)...)}
|
|
}
|
|
|
|
func (l ListOfTree) Insert(idx uint64, v ...Tree) ListOfTree {
|
|
return ListOfTree{l.l.Insert(idx, l.fromElemSlice(v)...)}
|
|
}
|
|
|
|
func (l ListOfTree) Remove(idx uint64, end uint64) ListOfTree {
|
|
return ListOfTree{l.l.Remove(idx, end)}
|
|
}
|
|
|
|
func (l ListOfTree) RemoveAt(idx uint64) ListOfTree {
|
|
return ListOfTree{(l.l.RemoveAt(idx))}
|
|
}
|
|
|
|
func (l ListOfTree) fromElemSlice(p []Tree) []types.Value {
|
|
r := make([]types.Value, len(p))
|
|
for i, v := range p {
|
|
r[i] = v.NomsValue()
|
|
}
|
|
return r
|
|
}
|
|
|
|
type ListOfTreeIterCallback func(v Tree) (stop bool)
|
|
|
|
func (l ListOfTree) Iter(cb ListOfTreeIterCallback) {
|
|
l.l.Iter(func(v types.Value) bool {
|
|
return cb(TreeFromVal(v))
|
|
})
|
|
}
|
|
|
|
type ListOfTreeIterAllCallback func(v Tree)
|
|
|
|
func (l ListOfTree) IterAll(cb ListOfTreeIterAllCallback) {
|
|
l.l.IterAll(func(v types.Value) {
|
|
cb(TreeFromVal(v))
|
|
})
|
|
}
|
|
|
|
type ListOfTreeFilterCallback func(v Tree) (keep bool)
|
|
|
|
func (l ListOfTree) Filter(cb ListOfTreeFilterCallback) ListOfTree {
|
|
nl := NewListOfTree()
|
|
l.IterAll(func(v Tree) {
|
|
if cb(v) {
|
|
nl = nl.Append(v)
|
|
}
|
|
})
|
|
return nl
|
|
}
|