code: func (q *BytesQueue) Pop() ([]byte, error) {
  	data, size, err := q.peek(q.head)
  	if err != nil {
  		return nil, err
  	}
  
  	q.head += headerEntrySize + size
  	q.count--
  
  	if q.head == q.rightMargin {
  		q.head = leftMarginIndex
  		if q.tail == q.rightMargin {
  			q.tail = leftMarginIndex
  		}
  		q.rightMargin = q.tail
  	}
  
  	return data, nil
  }
docs: // Pop reads the oldest entry from queue and moves head pointer to the next one