···1818var _ = math.E
1919var _ = sort.Sort
20202121-func (t *nodeData) MarshalCBOR(w io.Writer) error {
2121+func (t *NodeData) MarshalCBOR(w io.Writer) error {
2222 if t == nil {
2323 _, err := w.Write(cbg.CborNull)
2424 return err
···3030 return err
3131 }
32323333- // t.Entries ([]mst.treeEntry) (slice)
3333+ // t.Entries ([]mst.TreeEntry) (slice)
3434 if len("e") > 1000000 {
3535 return xerrors.Errorf("Value in field \"e\" was too long")
3636 }
···8181 return nil
8282}
83838484-func (t *nodeData) UnmarshalCBOR(r io.Reader) (err error) {
8585- *t = nodeData{}
8484+func (t *NodeData) UnmarshalCBOR(r io.Reader) (err error) {
8585+ *t = NodeData{}
86868787 cr := cbg.NewCborReader(r)
8888···101101 }
102102103103 if extra > cbg.MaxLength {
104104- return fmt.Errorf("nodeData: map struct too large (%d)", extra)
104104+ return fmt.Errorf("NodeData: map struct too large (%d)", extra)
105105 }
106106107107 n := extra
···122122 }
123123124124 switch string(nameBuf[:nameLen]) {
125125- // t.Entries ([]mst.treeEntry) (slice)
125125+ // t.Entries ([]mst.TreeEntry) (slice)
126126 case "e":
127127128128 maj, extra, err = cr.ReadHeader()
···139139 }
140140141141 if extra > 0 {
142142- t.Entries = make([]treeEntry, extra)
142142+ t.Entries = make([]TreeEntry, extra)
143143 }
144144145145 for i := 0; i < int(extra); i++ {
···195195196196 return nil
197197}
198198-func (t *treeEntry) MarshalCBOR(w io.Writer) error {
198198+func (t *TreeEntry) MarshalCBOR(w io.Writer) error {
199199 if t == nil {
200200 _, err := w.Write(cbg.CborNull)
201201 return err
···294294 return nil
295295}
296296297297-func (t *treeEntry) UnmarshalCBOR(r io.Reader) (err error) {
298298- *t = treeEntry{}
297297+func (t *TreeEntry) UnmarshalCBOR(r io.Reader) (err error) {
298298+ *t = TreeEntry{}
299299300300 cr := cbg.NewCborReader(r)
301301···314314 }
315315316316 if extra > cbg.MaxLength {
317317- return fmt.Errorf("treeEntry: map struct too large (%d)", extra)
317317+ return fmt.Errorf("TreeEntry: map struct too large (%d)", extra)
318318 }
319319320320 n := extra
+8-8
mst/mst.go
···105105// the CBOR codec.
106106func CBORTypes() []reflect.Type {
107107 return []reflect.Type{
108108- reflect.TypeOf(nodeData{}),
109109- reflect.TypeOf(treeEntry{}),
108108+ reflect.TypeOf(NodeData{}),
109109+ reflect.TypeOf(TreeEntry{}),
110110 }
111111}
112112113113// MST tree node as gets serialized to CBOR. Note that the CBOR fields are all
114114// single-character.
115115-type nodeData struct {
115115+type NodeData struct {
116116 Left *cid.Cid `cborgen:"l"` // [nullable] pointer to lower-level subtree to the "left" of this path/key
117117- Entries []treeEntry `cborgen:"e"` // ordered list of entries at this node
117117+ Entries []TreeEntry `cborgen:"e"` // ordered list of entries at this node
118118}
119119120120-// treeEntry are elements of nodeData's Entries.
121121-type treeEntry struct {
120120+// TreeEntry are elements of NodeData's Entries.
121121+type TreeEntry struct {
122122 PrefixLen int64 `cborgen:"p"` // count of characters shared with previous path/key in tree
123123 KeySuffix []byte `cborgen:"k"` // remaining part of path/key (appended to "previous key")
124124 Val cid.Cid `cborgen:"v"` // CID pointer at this path/key
···189189 // otherwise this is a virtual/pointer struct and we need to hydrate from
190190 // blockstore before returning entries
191191 if mst.pointer != cid.Undef {
192192- var nd nodeData
192192+ var nd NodeData
193193 if err := mst.cst.Get(ctx, mst.pointer, &nd); err != nil {
194194 return nil, err
195195 }
···210210}
211211212212// golang-specific helper that calls in to deserializeNodeData
213213-func entriesFromNodeData(ctx context.Context, nd *nodeData, cst cbor.IpldStore) ([]nodeEntry, error) {
213213+func entriesFromNodeData(ctx context.Context, nd *NodeData, cst cbor.IpldStore) ([]nodeEntry, error) {
214214 layer := -1
215215 if len(nd.Entries) > 0 {
216216 // NOTE(bnewbold): can compute the layer on the first KeySuffix, because for the first entry that field is a complete key