pub trait Protocol: 'static + SealedProtocol + Send {
type ProviderEndpoint: 'static + Send;
type ClientEndpoint: 'static + Send;
fn create_endpoints() -> (Self::ProviderEndpoint, Self::ClientEndpoint);
fn forward(
client_end: Self::ClientEndpoint,
provider_end: Self::ProviderEndpoint
) -> Pin<Box<dyn Future<Output = ()> + Send + 'static, Global>>;
}