class Falcon::Input
def read(length = nil, buffer = nil)
def read(length = nil, buffer = nil) if length fill_buffer(length) if @buffer.bytesize <= length return @buffer.slice!(0, length) else buffer ||= Async::IO::BinaryString.new buffer << @buffer @buffer.clear while chunk = read_next buffer << chunk end return buffer end end