class Async::HTTP::Protocol::HTTP1::Connection

def as_json(...)

def as_json(...)
	to_s
end

def concurrency

def concurrency
	1
end

def http1?

def http1?
	true
end

def http2?

def http2?
	false
end

def initialize(stream, version, **options)

def initialize(stream, version, **options)
	super(stream, **options)
	
	# On the client side, we need to send the HTTP version with the initial request. On the server side, there are some scenarios (bad request) where we don't know the request version. In those cases, we use this value, which is either hard coded based on the protocol being used, OR could be negotiated during the connection setup (e.g. ALPN).
	@version = version
end

def peer

def peer
	@peer ||= ::Protocol::HTTP::Peer.for(@stream.io)
end

def reusable?

def reusable?
	@persistent && @stream && !@stream.closed?
end

def to_json(...)

def to_json(...)
	as_json.to_json(...)
end

def to_s

def to_s
	"\#<#{self.class} negotiated #{@version}, #{@state}>"
end

def viable?

Can we use this connection to make requests?
def viable?
	self.idle? && @stream&.readable?
end