-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathrows.go
55 lines (46 loc) · 964 Bytes
/
rows.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package main
type Row struct {
Key RowKey
Value *RowValue
Err error
}
type RowKey struct {
b []byte
}
func DecodeRowKey(b []byte) (rk RowKey, err error) {
rk = RowKey{b: make([]byte, len(b))}
for i, v := range b { // simulate something expensive
rk.b[i] = v
}
return rk, nil
}
func (rk RowKey) Bytes() (b []byte, err error) {
b = make([]byte, len(rk.b))
for i, v := range rk.b { // simulate something expensive
b[i] = v
}
return b, nil
}
type RowValue struct {
b []byte
}
func (v *RowValue) Merge(m *RowValue) {
return
}
func NewRowValue() *RowValue {
return &RowValue{}
}
func DecodeRowValue(b []byte) (rv *RowValue, err error) {
rv = &RowValue{b: make([]byte, len(b))}
for i, v := range b { // simulate something expensive
rv.b[i] = v
}
return rv, nil
}
func (rv *RowValue) Bytes() (b []byte, err error) {
b = make([]byte, len(rv.b))
for i, v := range rv.b { // simulate something expensive
b[i] = v
}
return b, nil
}