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  }