rmp_ipc/namespaces/
provider_trait.rs

1use crate::events::event_handler::EventHandler;
2use crate::namespace::Namespace;
3
4pub trait NamespaceProvider {
5    fn name() -> &'static str;
6    fn register(handler: &mut EventHandler);
7}
8
9impl Namespace {
10    pub fn from_provider<N: NamespaceProvider>() -> Self {
11        let name = N::name();
12        let mut handler = EventHandler::new();
13        N::register(&mut handler);
14
15        Self::new(name, handler)
16    }
17}