Skip to main content

patternfly_yew/components/menu/
child.rs

1use crate::prelude::*;
2use std::rc::Rc;
3use yew::prelude::*;
4
5#[derive(Clone, PartialEq)]
6pub enum MenuChild {
7    Action(Rc<<MenuAction as BaseComponent>::Properties>),
8    Checkbox(Rc<<MenuCheckbox as BaseComponent>::Properties>),
9    Link(Rc<<MenuLink as BaseComponent>::Properties>),
10    Divider(Rc<<ListDivider as BaseComponent>::Properties>),
11    Group(Rc<<MenuGroup as BaseComponent>::Properties>),
12    Loading(Rc<<MenuLoading as BaseComponent>::Properties>),
13    Raw(Rc<<Raw as BaseComponent>::Properties>),
14}
15
16impl From<()> for MenuChild {
17    fn from(_: ()) -> Self {
18        MenuChild::Divider(Rc::new(()))
19    }
20}
21
22impl From<MenuActionProperties> for MenuChild {
23    fn from(props: MenuActionProperties) -> Self {
24        MenuChild::Action(Rc::new(props))
25    }
26}
27
28impl From<MenuLinkProperties> for MenuChild {
29    fn from(props: MenuLinkProperties) -> Self {
30        MenuChild::Link(Rc::new(props))
31    }
32}
33
34impl From<MenuCheckboxProperties> for MenuChild {
35    fn from(props: MenuCheckboxProperties) -> Self {
36        MenuChild::Checkbox(Rc::new(props))
37    }
38}
39
40impl From<MenuGroupProperties> for MenuChild {
41    fn from(props: MenuGroupProperties) -> Self {
42        MenuChild::Group(Rc::new(props))
43    }
44}
45
46impl From<MenuLoadingProperties> for MenuChild {
47    fn from(props: MenuLoadingProperties) -> Self {
48        MenuChild::Loading(Rc::new(props))
49    }
50}
51
52impl From<ChildrenProperties> for MenuChild {
53    fn from(props: ChildrenProperties) -> Self {
54        MenuChild::Raw(Rc::new(props))
55    }
56}