pub trait InboundConnectionUpgrade<C>: UpgradeInfo {
type Output;
type Error;
type Future: Future<Output = Result<Self::Output, Self::Error>>;
// Required method
fn upgrade_inbound(self, socket: C, info: Self::Info) -> Self::Future;
}