operaton_task_worker/registry.rs
1use crate::types::ExternalTaskFn;
2
3pub struct Handler {
4 pub name: &'static str,
5 pub func: ExternalTaskFn,
6}
7
8inventory::collect!(Handler);
9
10pub fn find(name: &str) -> Option<ExternalTaskFn> {
11 for h in inventory::iter::<Handler> {
12 if h.name == name {
13 return Some(h.func);
14 }
15 }
16 None
17}
18
19pub fn all_names() -> Vec<&'static str> {
20 inventory::iter::<Handler>.into_iter().map(|h| h.name).collect()
21}
22