6
6
"tlog.app/go/errors"
7
7
)
8
8
9
- type StreamDecoder struct {
9
+ type Reader struct {
10
10
io.Reader
11
11
12
12
b []byte
@@ -20,13 +20,13 @@ const (
20
20
eBadSpecial
21
21
)
22
22
23
- func NewStreamDecoder (r io.Reader ) * StreamDecoder {
24
- return & StreamDecoder {
23
+ func NewReader (r io.Reader ) * Reader {
24
+ return & Reader {
25
25
Reader : r ,
26
26
}
27
27
}
28
28
29
- func (d * StreamDecoder ) Decode () (data []byte , err error ) {
29
+ func (d * Reader ) ReadOne () (data []byte , err error ) {
30
30
end , err := d .skipRead ()
31
31
if err != nil {
32
32
return nil , err
@@ -38,7 +38,7 @@ func (d *StreamDecoder) Decode() (data []byte, err error) {
38
38
return d .b [st :end :end ], nil
39
39
}
40
40
41
- func (d * StreamDecoder ) Read (p []byte ) (n int , err error ) {
41
+ func (d * Reader ) Read (p []byte ) (n int , err error ) {
42
42
end , err := d .skipRead ()
43
43
if err != nil {
44
44
return 0 , err
@@ -54,9 +54,9 @@ func (d *StreamDecoder) Read(p []byte) (n int, err error) {
54
54
return len (p ), nil
55
55
}
56
56
57
- func (d * StreamDecoder ) WriteTo (w io.Writer ) (n int64 , err error ) {
57
+ func (d * Reader ) WriteTo (w io.Writer ) (n int64 , err error ) {
58
58
for {
59
- data , err := d .Decode ()
59
+ data , err := d .ReadOne ()
60
60
if errors .Is (err , io .EOF ) {
61
61
return n , nil
62
62
}
@@ -72,7 +72,7 @@ func (d *StreamDecoder) WriteTo(w io.Writer) (n int64, err error) {
72
72
}
73
73
}
74
74
75
- func (d * StreamDecoder ) skipRead () (end int , err error ) {
75
+ func (d * Reader ) skipRead () (end int , err error ) {
76
76
for {
77
77
end = d .skip (d .i )
78
78
// println("skip", d.i, end)
@@ -91,7 +91,7 @@ func (d *StreamDecoder) skipRead() (end int, err error) {
91
91
}
92
92
}
93
93
94
- func (d * StreamDecoder ) skip (st int ) (i int ) {
94
+ func (d * Reader ) skip (st int ) (i int ) {
95
95
tag , sub , i := readTag (d .b , st )
96
96
// println("tag", st, tag, sub, i)
97
97
if i < 0 {
@@ -154,7 +154,7 @@ func (d *StreamDecoder) skip(st int) (i int) {
154
154
return i
155
155
}
156
156
157
- func (d * StreamDecoder ) more () (err error ) {
157
+ func (d * Reader ) more () (err error ) {
158
158
copy (d .b , d .b [d .i :])
159
159
d .b = d .b [:len (d .b )- d .i ]
160
160
d .boff += int64 (d .i )
0 commit comments