| 1234567891011121314151617181920212223242526272829303132333435363738 |
- package rlp
- import (
- "fmt"
- "io"
- )
- type MyCoolType struct {
- Name string
- a, b uint
- }
- // EncodeRLP writes x as RLP list [a, b] that omits the Name field.
- func (x *MyCoolType) EncodeRLP(w io.Writer) (err error) {
- // Note: the receiver can be a nil pointer. This allows you to
- // control the encoding of nil, but it also means that you have to
- // check for a nil receiver.
- if x == nil {
- err = Encode(w, []uint{0, 0})
- } else {
- err = Encode(w, []uint{x.a, x.b})
- }
- return err
- }
- func ExampleEncoder() {
- var t *MyCoolType // t is nil pointer to MyCoolType
- bytes, _ := EncodeToBytes(t)
- fmt.Printf("%v → %X\n", t, bytes)
- t = &MyCoolType{Name: "foobar", a: 5, b: 6}
- bytes, _ = EncodeToBytes(t)
- fmt.Printf("%v → %X\n", t, bytes)
- // Output:
- // <nil> → C28080
- // &{foobar 5 6} → C20506
- }
|