()
| 192 | } |
| 193 | |
| 194 | func (r *binaryReader) ReadByte() (byte, error) { |
| 195 | switch x := r.r.(type) { |
| 196 | case *bytes.Buffer: |
| 197 | return x.ReadByte() |
| 198 | case *bytes.Reader: |
| 199 | return x.ReadByte() |
| 200 | case *bufio.Reader: |
| 201 | return x.ReadByte() |
| 202 | case io.ByteReader: |
| 203 | return x.ReadByte() |
| 204 | default: |
| 205 | b, err := r.read(1) |
| 206 | if err != nil { |
| 207 | return 0, err |
| 208 | } |
| 209 | return b[0], nil |
| 210 | } |
| 211 | } |
| 212 | |
| 213 | func (r *binaryReader) read(n int) ([]byte, error) { |
| 214 | _, err := io.ReadFull(r.r, r.b[:n]) |