code: func (b *Buffer) Next(n int) []byte {
  	m := b.Len()
  	if n > m {
  		n = m
  	}
  	data := b.buf[b.off : b.off+n]
  	b.off += n
  	return data
  }
docs: // Next returns a slice containing the next n bytes from the buffer,
  // advancing the buffer as if the bytes had been returned by Read.
  // If there are fewer than n bytes in the buffer, Next returns the entire buffer.
  // The slice is only valid until the next call to a read or write method.