(r *bufio.Reader, sz int, n int, f func([]byte))
| 11 | var errShortRead = errors.New("not enough bytes available to load the response") |
| 12 | |
| 13 | func peekRead(r *bufio.Reader, sz int, n int, f func([]byte)) (int, error) { |
| 14 | if n > sz { |
| 15 | return sz, errShortRead |
| 16 | } |
| 17 | b, err := r.Peek(n) |
| 18 | if err != nil { |
| 19 | return sz, err |
| 20 | } |
| 21 | f(b) |
| 22 | return discardN(r, sz, n) |
| 23 | } |
| 24 | |
| 25 | func readInt8(r *bufio.Reader, sz int, v *int8) (int, error) { |
| 26 | return peekRead(r, sz, 1, func(b []byte) { *v = makeInt8(b) }) |