Skip to main content

gitv_tui/ui/
macros.rs

1#[macro_export]
2macro_rules! define_cid_map {
3    ($($index: literal -> $ty: expr),* $(,)?) => {{
4    let mut map = ::std::collections::HashMap::new();
5    let mut elements: std::vec::Vec<::std::boxed::Box<dyn Component>> = ::std::vec::Vec::new();
6    $(
7        $ty.set_index($index);
8        elements.push(::std::boxed::Box::new($ty));
9        map.insert($index, elements.len() - 1);
10    )*
11    $crate::ui::CIDMAP.set(
12    map
13    ).map_err(|_| $crate::errors::AppError::ErrorSettingGlobal("CTIDMAP"))?;
14        Result::<std::vec::Vec<::std::boxed::Box<dyn Component>>, AppError>::Ok(elements)
15    }}
16}