pub type Namespace = str;
pub const RELAY: &str = "relay";
pub mod relay_methods {
pub const NET_SET_PROXY: &str = "relay.net.set_proxy";
pub const NET_CONFIGURE_ENTRYPOINT: &str = "relay.net.configure_entrypoint";
pub const CONN_OPEN: &str = "relay.conn.open";
pub const FWD_MAP: &str = "relay.fwd.map";
pub const FWD_LIST: &str = "relay.fwd.list";
pub const WINDOW_MINIMIZE: &str = "relay.window.minimize";
pub const WINDOW_MAXIMIZE_TOGGLE: &str = "relay.window.maximize_toggle";
pub const WINDOW_CLOSE: &str = "relay.window.close";
pub const WINDOW_STATE: &str = "relay.window.state";
}
pub fn namespace_of(method: &str) -> &str {
match method.split_once('.') {
Some((head, _)) => head,
None => "",
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn extracts_dotted_namespace() {
assert_eq!(namespace_of("enrollment.mint"), "enrollment");
assert_eq!(namespace_of("a.b.c"), "a");
assert_eq!(namespace_of("relay.net.set_proxy"), RELAY);
assert_eq!(namespace_of("bare"), "");
}
}