65 lines
1.2 KiB
Plaintext
65 lines
1.2 KiB
Plaintext
|
package test
|
||
|
|
||
|
import "github.com/ethereum/go-ethereum/rlp"
|
||
|
import "io"
|
||
|
|
||
|
func (obj *Test) EncodeRLP(_w io.Writer) error {
|
||
|
w := rlp.NewEncoderBuffer(_w)
|
||
|
_tmp0 := w.List()
|
||
|
w.Write(obj.RawValue)
|
||
|
if obj.PointerToRawValue == nil {
|
||
|
w.Write([]byte{0x80})
|
||
|
} else {
|
||
|
w.Write((*obj.PointerToRawValue))
|
||
|
}
|
||
|
_tmp1 := w.List()
|
||
|
for _, _tmp2 := range obj.SliceOfRawValue {
|
||
|
w.Write(_tmp2)
|
||
|
}
|
||
|
w.ListEnd(_tmp1)
|
||
|
w.ListEnd(_tmp0)
|
||
|
return w.Flush()
|
||
|
}
|
||
|
|
||
|
func (obj *Test) DecodeRLP(dec *rlp.Stream) error {
|
||
|
var _tmp0 Test
|
||
|
{
|
||
|
if _, err := dec.List(); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
// RawValue:
|
||
|
_tmp1, err := dec.Raw()
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
_tmp0.RawValue = _tmp1
|
||
|
// PointerToRawValue:
|
||
|
_tmp2, err := dec.Raw()
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
_tmp0.PointerToRawValue = &_tmp2
|
||
|
// SliceOfRawValue:
|
||
|
var _tmp3 []rlp.RawValue
|
||
|
if _, err := dec.List(); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
for dec.MoreDataInList() {
|
||
|
_tmp4, err := dec.Raw()
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
_tmp3 = append(_tmp3, _tmp4)
|
||
|
}
|
||
|
if err := dec.ListEnd(); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
_tmp0.SliceOfRawValue = _tmp3
|
||
|
if err := dec.ListEnd(); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
}
|
||
|
*obj = _tmp0
|
||
|
return nil
|
||
|
}
|