diff options
Diffstat (limited to 'virtual/src/element.rs')
-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(), - } - } -} |