code: func (b *LookAheadBuffer) Consume(numBytes int) error {
  	if numBytes == 0 {
  		return nil
  	}
  	if numBytes < 0 {
  		return errors.New("Cannot drop negative numBytes")
  	}
  	if b.bytesBuffered < numBytes {
  		return errors.New("Consuming more bytes than bytes in buffer.")
  	}
  
  	copy(b.buffer, b.buffer[numBytes:b.bytesBuffered])
  	b.bytesBuffered -= numBytes
  	return nil
  }
docs: // Consume drops the first numBytes number of populated bytes from the look
  // ahead buffer.  NOTE: This is an O(n) operation since it requires shifting
  // the remaining bytes to the beginning of the buffer.  Avoid consuming the
  // buffer byte by byte.