summaryrefslogtreecommitdiff
path: root/schist_desktop_gui/src/traits
diff options
context:
space:
mode:
Diffstat (limited to 'schist_desktop_gui/src/traits')
-rw-r--r--schist_desktop_gui/src/traits/component.rs5
-rw-r--r--schist_desktop_gui/src/traits/viewable.rs3
2 files changed, 8 insertions, 0 deletions
diff --git a/schist_desktop_gui/src/traits/component.rs b/schist_desktop_gui/src/traits/component.rs
new file mode 100644
index 0000000..cece636
--- /dev/null
+++ b/schist_desktop_gui/src/traits/component.rs
@@ -0,0 +1,5 @@
+use crate::traits::Viewable;
+
+pub trait Component<'a, Message, Action>: Viewable<'a, Message> {
+ fn update(&mut self, message: Message) -> Action;
+}
diff --git a/schist_desktop_gui/src/traits/viewable.rs b/schist_desktop_gui/src/traits/viewable.rs
new file mode 100644
index 0000000..e0f0eb7
--- /dev/null
+++ b/schist_desktop_gui/src/traits/viewable.rs
@@ -0,0 +1,3 @@
+pub trait Viewable<'a, Message> {
+ fn view(&'a self) -> iced::Element<'a, Message>;
+}