summaryrefslogtreecommitdiffstats
path: root/wgpu/src/widget/canvas/state.rs
diff options
context:
space:
mode:
Diffstat (limited to 'wgpu/src/widget/canvas/state.rs')
-rw-r--r--wgpu/src/widget/canvas/state.rs14
1 files changed, 8 insertions, 6 deletions
diff --git a/wgpu/src/widget/canvas/state.rs b/wgpu/src/widget/canvas/state.rs
index 8388f94d..ab433dd1 100644
--- a/wgpu/src/widget/canvas/state.rs
+++ b/wgpu/src/widget/canvas/state.rs
@@ -1,17 +1,19 @@
use crate::canvas::{Event, Geometry, Size};
-pub trait State {
- fn update(&mut self, _event: Event, _bounds: Size) {}
+pub trait State<Message> {
+ fn update(&mut self, _event: Event, _bounds: Size) -> Option<Message> {
+ None
+ }
fn draw(&self, bounds: Size) -> Vec<Geometry>;
}
-impl<T> State for &mut T
+impl<T, Message> State<Message> for &mut T
where
- T: State,
+ T: State<Message>,
{
- fn update(&mut self, event: Event, bounds: Size) {
- T::update(self, event, bounds);
+ fn update(&mut self, event: Event, bounds: Size) -> Option<Message> {
+ T::update(self, event, bounds)
}
fn draw(&self, bounds: Size) -> Vec<Geometry> {