github.com/filecoin-project/specs-actors/v4@v4.0.2/actors/builtin/cbor_gen.go (about) 1 // Code generated by github.com/whyrusleeping/cbor-gen. DO NOT EDIT. 2 3 package builtin 4 5 import ( 6 "fmt" 7 "io" 8 9 address "github.com/filecoin-project/go-address" 10 cbg "github.com/whyrusleeping/cbor-gen" 11 xerrors "golang.org/x/xerrors" 12 ) 13 14 var _ = xerrors.Errorf 15 16 var lengthBufMinerAddrs = []byte{131} 17 18 func (t *MinerAddrs) MarshalCBOR(w io.Writer) error { 19 if t == nil { 20 _, err := w.Write(cbg.CborNull) 21 return err 22 } 23 if _, err := w.Write(lengthBufMinerAddrs); err != nil { 24 return err 25 } 26 27 scratch := make([]byte, 9) 28 29 // t.Owner (address.Address) (struct) 30 if err := t.Owner.MarshalCBOR(w); err != nil { 31 return err 32 } 33 34 // t.Worker (address.Address) (struct) 35 if err := t.Worker.MarshalCBOR(w); err != nil { 36 return err 37 } 38 39 // t.ControlAddrs ([]address.Address) (slice) 40 if len(t.ControlAddrs) > cbg.MaxLength { 41 return xerrors.Errorf("Slice value in field t.ControlAddrs was too long") 42 } 43 44 if err := cbg.WriteMajorTypeHeaderBuf(scratch, w, cbg.MajArray, uint64(len(t.ControlAddrs))); err != nil { 45 return err 46 } 47 for _, v := range t.ControlAddrs { 48 if err := v.MarshalCBOR(w); err != nil { 49 return err 50 } 51 } 52 return nil 53 } 54 55 func (t *MinerAddrs) UnmarshalCBOR(r io.Reader) error { 56 *t = MinerAddrs{} 57 58 br := cbg.GetPeeker(r) 59 scratch := make([]byte, 8) 60 61 maj, extra, err := cbg.CborReadHeaderBuf(br, scratch) 62 if err != nil { 63 return err 64 } 65 if maj != cbg.MajArray { 66 return fmt.Errorf("cbor input should be of type array") 67 } 68 69 if extra != 3 { 70 return fmt.Errorf("cbor input had wrong number of fields") 71 } 72 73 // t.Owner (address.Address) (struct) 74 75 { 76 77 if err := t.Owner.UnmarshalCBOR(br); err != nil { 78 return xerrors.Errorf("unmarshaling t.Owner: %w", err) 79 } 80 81 } 82 // t.Worker (address.Address) (struct) 83 84 { 85 86 if err := t.Worker.UnmarshalCBOR(br); err != nil { 87 return xerrors.Errorf("unmarshaling t.Worker: %w", err) 88 } 89 90 } 91 // t.ControlAddrs ([]address.Address) (slice) 92 93 maj, extra, err = cbg.CborReadHeaderBuf(br, scratch) 94 if err != nil { 95 return err 96 } 97 98 if extra > cbg.MaxLength { 99 return fmt.Errorf("t.ControlAddrs: array too large (%d)", extra) 100 } 101 102 if maj != cbg.MajArray { 103 return fmt.Errorf("expected cbor array") 104 } 105 106 if extra > 0 { 107 t.ControlAddrs = make([]address.Address, extra) 108 } 109 110 for i := 0; i < int(extra); i++ { 111 112 var v address.Address 113 if err := v.UnmarshalCBOR(br); err != nil { 114 return err 115 } 116 117 t.ControlAddrs[i] = v 118 } 119 120 return nil 121 }