def get(length = remaining)
      raise ArgumentError, "negative length given" if length < 0
      raise UnderflowError, "not enough data in buffer" if length > @limit - @position

      result = @buffer[@position...length]
      @position += length
      result
    end
def get(length = remaining)
      raise ArgumentError, "negative length given" if length < 0
      raise UnderflowError, "not enough data in buffer" if length > @limit - @position

      result = @buffer[@position...length]
      @position += length
      result
    end
Obtain the requested number of bytes from the buffer, advancing the position.
 If no length is given, all remaining bytes are consumed.

 @raise [NIO::ByteBuffer::UnderflowError] not enough data remaining in buffer

 @return [String] bytes read from buffer