use platform_core::Event;
use crate::render_node::RenderNode;
#[derive(Debug, PartialEq)]
pub enum EventResult {
Handled,
Ignored,
}
pub trait Component: 'static {
fn view(&self) -> RenderNode;
fn on_event(&mut self, _event: &Event) -> EventResult {
EventResult::Ignored
}
fn debug_name(&self) -> &'static str {
"Component"
}
}
impl Component for Box<dyn Component> {
fn view(&self) -> RenderNode {
(**self).view()
}
fn on_event(&mut self, event: &Event) -> EventResult {
(**self).on_event(event)
}
fn debug_name(&self) -> &'static str {
(**self).debug_name()
}
}