use crate::{component, components::Any as AnyComponent, element::Any as AnyElement};
pub enum Content {
Component(AnyComponent),
Element(AnyElement),
}
impl From<AnyComponent> for Content {
fn from(component: AnyComponent) -> Self {
Self::Component(component)
}
}
impl From<AnyElement> for Content {
fn from(element: AnyElement) -> Self {
Self::Element(element)
}
}
impl Default for Content {
fn default() -> Self {
Self::Element(AnyElement::default())
}
}
#[component(Embed)]
pub fn render(content: Content) -> AnyElement {
match content {
Content::Component(component) => component.render(),
Content::Element(element) => Clone::clone(element),
}
}