code: func (b *Buffer) Bytes() []byte {
  	if b.Len() == 0 {
  		return nil
  	}
  
  	m := make([]byte, 0, b.Len())
  	idx := b.fidx
  	for cur := b.first; cur != nil; cur = cur.next {
  		m = append(m, cur.Bytes()[idx:]...)
  		idx = 0
  	}
  	return m
  }
docs: // Bytes constructs a byte slice containing the contents of the Buffer.
  //
  // This is a potentially expensive operation, and should generally be used only
  // for debugging and tests, as it defeats most of the purpose of this package.