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