pub trait Protocol {
type Invoker;
type Exporter;
fn destroy(&self);
fn export<'async_trait>(
self,
url: Url
) -> Pin<Box<dyn Future<Output = Self::Exporter> + Send + 'async_trait>>
where
Self: 'async_trait;
fn refer<'async_trait>(
self,
url: Url
) -> Pin<Box<dyn Future<Output = Self::Invoker> + Send + 'async_trait>>
where
Self: 'async_trait;
}