/// A general trait that represents
/// something that constructs a proxy stream,
/// something, where we can write to and read from
/// just as from a usual stream but through a proxy
#[async_trait::async_trait]pubtraitProxyConstructor{/// Represents a stream that the proxy
/// client operates on (sends protocol data over it)
typeStream:Send;/// Represents the actual proxy stream,
/// returned by the connect function
typeProxyStream:Send;/// Used for internal proxy error indication
typeErrorKind;/// Takes ownership of an existant stream,
/// establishes a proxixied connection on the stream
/// and returns the proxy stream if the connection was
/// successful, unless an error
async fnconnect(&mutself, stream:Self::Stream)->Result<Self::ProxyStream, Self::ErrorKind>whereSelf: Sized;
}