diff options
author | Péter Szilágyi <peterke@gmail.com> | 2015-08-13 16:12:38 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2015-08-13 17:05:39 +0800 |
commit | 1d2420323ca555f8ac45969bd39415c5e619e4e0 (patch) | |
tree | 7ca11784e810dfab9fa9770fa9957bfe452bdb35 /rlp/encode.go | |
parent | 0dd6911c6222ce65d6aa0760f7c322246464b2d0 (diff) | |
download | dexon-1d2420323ca555f8ac45969bd39415c5e619e4e0.tar.gz dexon-1d2420323ca555f8ac45969bd39415c5e619e4e0.tar.zst dexon-1d2420323ca555f8ac45969bd39415c5e619e4e0.zip |
rlp: add support for boolean encoding/decoding
Diffstat (limited to 'rlp/encode.go')
-rw-r--r-- | rlp/encode.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/rlp/encode.go b/rlp/encode.go index 0ddef7bbb..b525ae4e7 100644 --- a/rlp/encode.go +++ b/rlp/encode.go @@ -361,6 +361,8 @@ func makeWriter(typ reflect.Type) (writer, error) { return writeBigIntNoPtr, nil case isUint(kind): return writeUint, nil + case kind == reflect.Bool: + return writeBool, nil case kind == reflect.String: return writeString, nil case kind == reflect.Slice && isByte(typ.Elem()): @@ -398,6 +400,15 @@ func writeUint(val reflect.Value, w *encbuf) error { return nil } +func writeBool(val reflect.Value, w *encbuf) error { + if val.Bool() { + w.str = append(w.str, 0x01) + } else { + w.str = append(w.str, 0x80) + } + return nil +} + func writeBigIntPtr(val reflect.Value, w *encbuf) error { ptr := val.Interface().(*big.Int) if ptr == nil { |