(p []byte)
| 225 | } |
| 226 | |
| 227 | func (b *Writer) Write(p []byte) (nn int, err error) { |
| 228 | for b.err == nil && len(p) > b.available() { |
| 229 | var n int |
| 230 | if b.wpos == 0 { |
| 231 | n, b.err = b.wr.Write(p) |
| 232 | } else { |
| 233 | n = copy(b.buf[b.wpos:], p) |
| 234 | b.wpos += n |
| 235 | b.flush() |
| 236 | } |
| 237 | nn, p = nn+n, p[n:] |
| 238 | } |
| 239 | if b.err != nil || len(p) == 0 { |
| 240 | return nn, b.err |
| 241 | } |
| 242 | n := copy(b.buf[b.wpos:], p) |
| 243 | b.wpos += n |
| 244 | return nn + n, nil |
| 245 | } |
| 246 | |
| 247 | func (b *Writer) WriteByte(c byte) error { |
| 248 | if b.err != nil { |