summaryrefslogtreecommitdiffstats
path: root/wgpu/src/widget/canvas/program.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-04-28 06:24:12 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-04-28 06:24:12 +0200
commit2539042b71d70afd4d8f262783d441e768811ee9 (patch)
treef3af8a86b700308ff5fe9f28f88a508b2fd8cdb5 /wgpu/src/widget/canvas/program.rs
parent7f1e7aea07bb448471470093a47898b059d940d3 (diff)
downloadiced-2539042b71d70afd4d8f262783d441e768811ee9.tar.gz
iced-2539042b71d70afd4d8f262783d441e768811ee9.tar.bz2
iced-2539042b71d70afd4d8f262783d441e768811ee9.zip
Remove `Drawable` and rename `State` to `Program`
Diffstat (limited to 'wgpu/src/widget/canvas/program.rs')
-rw-r--r--wgpu/src/widget/canvas/program.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/wgpu/src/widget/canvas/program.rs b/wgpu/src/widget/canvas/program.rs
new file mode 100644
index 00000000..8e35fdfb
--- /dev/null
+++ b/wgpu/src/widget/canvas/program.rs
@@ -0,0 +1,22 @@
+use crate::canvas::{Event, Geometry, Size};
+
+pub trait Program<Message> {
+ fn update(&mut self, _event: Event, _bounds: Size) -> Option<Message> {
+ None
+ }
+
+ fn draw(&self, bounds: Size) -> Vec<Geometry>;
+}
+
+impl<T, Message> Program<Message> for &mut T
+where
+ T: Program<Message>,
+{
+ fn update(&mut self, event: Event, bounds: Size) -> Option<Message> {
+ T::update(self, event, bounds)
+ }
+
+ fn draw(&self, bounds: Size) -> Vec<Geometry> {
+ T::draw(self, bounds)
+ }
+}