pub trait HttpContextInterface: Send + Sync {
type State;
// Required method
fn new<'life0, 'async_trait>(
extensions: &'life0 Extensions,
state: Self::State,
) -> Pin<Box<dyn Future<Output = Option<Self>> + Send + 'async_trait>>
where Self: Sized + 'async_trait,
'life0: 'async_trait;
// Provided method
fn shared(self) -> Arc<Self>
where Self: Sized { ... }
}