func (d *IntegerDecoder) decodePacked() { if len(d.bytes) == 0 { return } if len(d.bytes) < 8 { d.err = fmt.Errorf("IntegerDecoder: not enough data to decode packed value") return } v := binary.BigEndian.Uint64(d.bytes[0:8]) // The first value is always unencoded if d.first { d.first = false d.n = 1 d.values[0] = v } else { n, err := simple8b.Decode(&d.values, v) if err != nil { // Should never happen, only error that could be returned is if the the value to be decoded was not // actually encoded by simple8b encoder. d.err = fmt.Errorf("failed to decode value %v: %v", v, err) } d.n = n } d.i = 0 d.bytes = d.bytes[8:] }
func (d *int64Decoder) decodePacked() { if len(d.bytes) == 0 { return } v := binary.BigEndian.Uint64(d.bytes[0:8]) n, err := simple8b.Decode(d.values, v) if err != nil { // Should never happen, only error that could be returned is if the the value to be decoded was not // actually encoded by simple8b encoder. d.err = fmt.Errorf("failed to decode value %v: %v", v, err) } d.n = n d.i = 0 d.bytes = d.bytes[8:] }