summaryrefslogtreecommitdiffstats
path: root/wgpu/src/widget/canvas/state.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-04-19 21:55:23 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-04-19 21:55:23 +0200
commit592cc685067c36cbba87e4db14f4ebc71d65b951 (patch)
treefec66717a6558ddfa31a90352724be13e6a2dfd9 /wgpu/src/widget/canvas/state.rs
parentbb424e54c5083402225a0fdda6130de575592dca (diff)
downloadiced-592cc685067c36cbba87e4db14f4ebc71d65b951.tar.gz
iced-592cc685067c36cbba87e4db14f4ebc71d65b951.tar.bz2
iced-592cc685067c36cbba87e4db14f4ebc71d65b951.zip
Remove `Layer` trait and simplify `Canvas`
Diffstat (limited to 'wgpu/src/widget/canvas/state.rs')
-rw-r--r--wgpu/src/widget/canvas/state.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/wgpu/src/widget/canvas/state.rs b/wgpu/src/widget/canvas/state.rs
new file mode 100644
index 00000000..8388f94d
--- /dev/null
+++ b/wgpu/src/widget/canvas/state.rs
@@ -0,0 +1,20 @@
+use crate::canvas::{Event, Geometry, Size};
+
+pub trait State {
+ fn update(&mut self, _event: Event, _bounds: Size) {}
+
+ fn draw(&self, bounds: Size) -> Vec<Geometry>;
+}
+
+impl<T> State for &mut T
+where
+ T: State,
+{
+ fn update(&mut self, event: Event, bounds: Size) {
+ T::update(self, event, bounds);
+ }
+
+ fn draw(&self, bounds: Size) -> Vec<Geometry> {
+ T::draw(self, bounds)
+ }
+}