diff options
author | 2022-02-10 21:54:13 +0700 | |
---|---|---|
committer | 2022-02-10 21:54:13 +0700 | |
commit | 5225e0e304bf5b407977e549c48ce9dea26b8c40 (patch) | |
tree | 8358ef6152f743e87a9d83d8deb3aa47e877cd88 /virtual/src/element.rs | |
parent | 8f0839e786f8d521f7319dd0e188d43284f526b7 (diff) | |
download | iced-5225e0e304bf5b407977e549c48ce9dea26b8c40.tar.gz iced-5225e0e304bf5b407977e549c48ce9dea26b8c40.tar.bz2 iced-5225e0e304bf5b407977e549c48ce9dea26b8c40.zip |
Draft virtual `Button`, `Column`, and `Text`
... as well as a very naive diffing strategy!
Diffstat (limited to '')
-rw-r--r-- | virtual/src/element.rs | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/virtual/src/element.rs b/virtual/src/element.rs deleted file mode 100644 index ecdb0677..00000000 --- a/virtual/src/element.rs +++ /dev/null @@ -1,37 +0,0 @@ -use crate::Widget; - -pub struct Element<Message, Renderer> { - widget: Box<dyn Descriptor<Message, Renderer>>, -} - -impl<Message, Renderer> Element<Message, Renderer> { - pub fn new(widget: impl Descriptor<Message, Renderer> + 'static) -> Self { - Self { - widget: Box::new(widget), - } - } -} - -pub trait Descriptor<Message, Renderer> { - fn tag(&self) -> std::any::TypeId; - - fn build(&self) -> Box<dyn Widget<Message, Renderer>>; - - fn children(&self) -> &[Element<Message, Renderer>]; - - fn clone(&self) -> Box<dyn Descriptor<Message, Renderer>>; -} - -impl<Message, Renderer> Clone for Box<dyn Descriptor<Message, Renderer>> { - fn clone(&self) -> Self { - self.as_ref().clone() - } -} - -impl<Message, Renderer> Clone for Element<Message, Renderer> { - fn clone(&self) -> Self { - Element { - widget: self.widget.clone(), - } - } -} |