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}