From 35e9b75e415ef3b9124051696b60628ef56afe47 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 16 Feb 2022 15:44:50 +0700 Subject: Introduce `Tag` and `State` opaque types in `iced_pure::widget::tree` --- pure/src/widget.rs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'pure/src/widget.rs') diff --git a/pure/src/widget.rs b/pure/src/widget.rs index 9112dd9a..03b668d3 100644 --- a/pure/src/widget.rs +++ b/pure/src/widget.rs @@ -37,15 +37,7 @@ use iced_native::mouse; use iced_native::renderer; use iced_native::{Clipboard, Hasher, Length, Point, Rectangle, Shell}; -use std::any::{self, Any}; - pub trait Widget { - fn tag(&self) -> any::TypeId; - - fn state(&self) -> Box; - - fn children_state(&self) -> Vec; - fn width(&self) -> Length; fn height(&self) -> Length; @@ -68,6 +60,18 @@ pub trait Widget { viewport: &Rectangle, ); + fn tag(&self) -> tree::Tag { + tree::Tag::stateless() + } + + fn state(&self) -> tree::State { + tree::State::None + } + + fn children(&self) -> Vec { + Vec::new() + } + fn diff(&self, _tree: &mut Tree) {} fn mouse_interaction( -- cgit