code: func (b *Buffer) read() []*rfc5424.Message {
  	if b.length == -1 {
  		return nil
  	}
  
  	buf := make([]*rfc5424.Message, 0, b.length)
  	msg := b.head
  	for msg != nil {
  		buf = append(buf, &msg.Message)
  		msg = msg.next
  	}
  	return buf
  }
docs: // _read expects b.mu to already be locked