pub trait Protocol {
type Invoker;
// Required methods
fn destroy(&self);
fn export<'async_trait>(
self,
url: Url
) -> Pin<Box<dyn Future<Output = BoxExporter> + 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;
}