summaryrefslogtreecommitdiffstats
path: root/virtual/src/element.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-02-10 21:54:13 +0700
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-02-10 21:54:13 +0700
commit5225e0e304bf5b407977e549c48ce9dea26b8c40 (patch)
tree8358ef6152f743e87a9d83d8deb3aa47e877cd88 /virtual/src/element.rs
parent8f0839e786f8d521f7319dd0e188d43284f526b7 (diff)
downloadiced-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.rs37
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(),
- }
- }
-}