pub trait Component<Msg>: Send + Sync + 'staticwhere
Msg: Clone + 'static,{
fn update<'life0, 'async_trait>(
&'life0 mut self,
msg: Msg
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn view<F>(&self, f: F, bindings: Shared<Vec<Element>>) -> Element
where
F: Fn(Option<Msg>) + Clone + 'static;
fn update_bindings(&mut self, bindings: Shared<Vec<Element>>);
}