diff options
author | 2022-11-03 02:46:31 +0100 | |
---|---|---|
committer | 2022-11-03 02:46:31 +0100 | |
commit | 1cdc1fcd0669bfea096237c07b32742c1a3f2158 (patch) | |
tree | c636951447fa1ccefdc4fb4a6c8f58240710da4c /lazy | |
parent | adf541d4325df22d577342f870f0f95fa357797a (diff) | |
download | iced-1cdc1fcd0669bfea096237c07b32742c1a3f2158.tar.gz iced-1cdc1fcd0669bfea096237c07b32742c1a3f2158.tar.bz2 iced-1cdc1fcd0669bfea096237c07b32742c1a3f2158.zip |
Rename `iced_lazy::Cached` to `Lazy` :tada:
Diffstat (limited to 'lazy')
-rw-r--r-- | lazy/src/lazy.rs (renamed from lazy/src/cached.rs) | 14 | ||||
-rw-r--r-- | lazy/src/lib.rs | 17 |
2 files changed, 22 insertions, 9 deletions
diff --git a/lazy/src/cached.rs b/lazy/src/lazy.rs index 931184b5..d61cc77e 100644 --- a/lazy/src/cached.rs +++ b/lazy/src/lazy.rs @@ -15,14 +15,14 @@ use std::marker::PhantomData; use std::rc::Rc; #[allow(missing_debug_implementations)] -pub struct Cached<'a, Message, Renderer, Dependency, View> { +pub struct Lazy<'a, Message, Renderer, Dependency, View> { dependency: Dependency, view: Box<dyn Fn() -> View + 'a>, element: RefCell<Option<Rc<RefCell<Element<'static, Message, Renderer>>>>>, } impl<'a, Message, Renderer, Dependency, View> - Cached<'a, Message, Renderer, Dependency, View> + Lazy<'a, Message, Renderer, Dependency, View> where Dependency: Hash + 'a, View: Into<Element<'static, Message, Renderer>>, @@ -56,7 +56,7 @@ struct Internal<Message, Renderer> { } impl<'a, Message, Renderer, Dependency, View> Widget<Message, Renderer> - for Cached<'a, Message, Renderer, Dependency, View> + for Lazy<'a, Message, Renderer, Dependency, View> where View: Into<Element<'static, Message, Renderer>> + 'static, Dependency: Hash + 'a, @@ -237,7 +237,7 @@ where #[self_referencing] struct Overlay<'a, 'b, Message, Renderer, Dependency, View> { - cached: &'a Cached<'b, Message, Renderer, Dependency, View>, + cached: &'a Lazy<'b, Message, Renderer, Dependency, View>, tree: &'a mut Tree, types: PhantomData<(Message, Dependency, View)>, @@ -348,7 +348,7 @@ where } impl<'a, Message, Renderer, Dependency, View> - From<Cached<'a, Message, Renderer, Dependency, View>> + From<Lazy<'a, Message, Renderer, Dependency, View>> for Element<'a, Message, Renderer> where View: Into<Element<'static, Message, Renderer>> + 'static, @@ -356,7 +356,7 @@ where Message: 'static, Dependency: Hash + 'a, { - fn from(cached: Cached<'a, Message, Renderer, Dependency, View>) -> Self { - Self::new(cached) + fn from(lazy: Lazy<'a, Message, Renderer, Dependency, View>) -> Self { + Self::new(lazy) } } diff --git a/lazy/src/lib.rs b/lazy/src/lib.rs index c01b439b..f49fe4b6 100644 --- a/lazy/src/lib.rs +++ b/lazy/src/lib.rs @@ -17,17 +17,30 @@ clippy::type_complexity )] #![cfg_attr(docsrs, feature(doc_cfg))] -pub mod cached; +mod lazy; + pub mod component; pub mod responsive; -pub use cached::Cached; pub use component::Component; +pub use lazy::Lazy; pub use responsive::Responsive; mod cache; use iced_native::{Element, Size}; +use std::hash::Hash; + +pub fn lazy<'a, Message, Renderer, Dependency, View>( + dependency: Dependency, + view: impl Fn() -> View + 'a, +) -> Lazy<'a, Message, Renderer, Dependency, View> +where + Dependency: Hash + 'a, + View: Into<Element<'static, Message, Renderer>>, +{ + Lazy::new(dependency, view) +} /// Turns an implementor of [`Component`] into an [`Element`] that can be /// embedded in any application. |