Skip to content

Commit dfa0cc4

Browse files
authored
Add decoding of non-compact uints (#98)
The encoder function were already there. Also, add tests for non-compact uint encoding/decoding.
1 parent b4e4d99 commit dfa0cc4

3 files changed

Lines changed: 276 additions & 376 deletions

File tree

decoder.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package scale
22

33
import (
4+
"encoding/binary"
45
"errors"
56
"fmt"
67
"io"
@@ -93,6 +94,30 @@ func DecodeByte(d *Decoder) (byte, int, error) {
9394
return d.scratch[0], n, err
9495
}
9596

97+
func DecodeUint16(d *Decoder) (uint16, int, error) {
98+
n, err := d.read(d.scratch[:2])
99+
if err != nil {
100+
return 0, n, err
101+
}
102+
return binary.LittleEndian.Uint16(d.scratch[:2]), n, err
103+
}
104+
105+
func DecodeUint32(d *Decoder) (uint32, int, error) {
106+
n, err := d.read(d.scratch[:4])
107+
if err != nil {
108+
return 0, n, err
109+
}
110+
return binary.LittleEndian.Uint32(d.scratch[:4]), n, err
111+
}
112+
113+
func DecodeUint64(d *Decoder) (uint64, int, error) {
114+
n, err := d.read(d.scratch[:8])
115+
if err != nil {
116+
return 0, n, err
117+
}
118+
return binary.LittleEndian.Uint64(d.scratch[:8]), n, err
119+
}
120+
96121
func DecodeCompact8(d *Decoder) (uint8, int, error) {
97122
var (
98123
value uint8

0 commit comments

Comments
 (0)