diff options
author | 2020-04-28 03:46:03 +0200 | |
---|---|---|
committer | 2020-04-28 03:52:12 +0200 | |
commit | e4eb0553de13053c9828fd5454c281e27e598d65 (patch) | |
tree | 3b3b353df461414ad4f5176fe091117d16a0ea6c /wgpu/src/widget/canvas/state.rs | |
parent | 2ca73036ab5946b451fd2b184541ae4dc6eedb24 (diff) | |
download | iced-e4eb0553de13053c9828fd5454c281e27e598d65.tar.gz iced-e4eb0553de13053c9828fd5454c281e27e598d65.tar.bz2 iced-e4eb0553de13053c9828fd5454c281e27e598d65.zip |
Allow `canvas::State` to produce messages
Diffstat (limited to 'wgpu/src/widget/canvas/state.rs')
-rw-r--r-- | wgpu/src/widget/canvas/state.rs | 14 |
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> { |