diff options
Diffstat (limited to 'widget')
-rw-r--r-- | widget/src/lazy.rs | 1 | ||||
-rw-r--r-- | widget/src/lazy/component.rs | 6 | ||||
-rw-r--r-- | widget/src/lazy/helpers.rs | 7 |
3 files changed, 14 insertions, 0 deletions
diff --git a/widget/src/lazy.rs b/widget/src/lazy.rs index 883a2f65..221f9de3 100644 --- a/widget/src/lazy.rs +++ b/widget/src/lazy.rs @@ -4,6 +4,7 @@ pub(crate) mod helpers; pub mod component; pub mod responsive; +#[allow(deprecated)] pub use component::Component; pub use responsive::Responsive; diff --git a/widget/src/lazy/component.rs b/widget/src/lazy/component.rs index 1ec07e37..659bc476 100644 --- a/widget/src/lazy/component.rs +++ b/widget/src/lazy/component.rs @@ -1,4 +1,5 @@ //! Build and reuse custom widgets using The Elm Architecture. +#![allow(deprecated)] use crate::core::event; use crate::core::layout::{self, Layout}; use crate::core::mouse; @@ -31,6 +32,11 @@ use std::rc::Rc; /// Additionally, a [`Component`] is capable of producing a `Message` to notify /// the parent application of any relevant interactions. #[cfg(feature = "lazy")] +#[deprecated( + since = "0.13.0", + note = "components introduce encapsulated state and hamper the use of a single source of truth. \ + Instead, leverage the Elm Architecture directly, or implement a custom widget" +)] pub trait Component<Message, Theme = crate::Theme, Renderer = crate::Renderer> { /// The internal state of this [`Component`]. type State: Default; diff --git a/widget/src/lazy/helpers.rs b/widget/src/lazy/helpers.rs index 862b251e..52e690ff 100644 --- a/widget/src/lazy/helpers.rs +++ b/widget/src/lazy/helpers.rs @@ -3,6 +3,7 @@ use crate::lazy::component; use std::hash::Hash; +#[allow(deprecated)] pub use crate::lazy::{Component, Lazy, Responsive}; /// Creates a new [`Lazy`] widget with the given data `Dependency` and a @@ -22,6 +23,12 @@ where /// Turns an implementor of [`Component`] into an [`Element`] that can be /// embedded in any application. #[cfg(feature = "lazy")] +#[deprecated( + since = "0.13.0", + note = "components introduce encapsulated state and hamper the use of a single source of truth. \ + Instead, leverage the Elm Architecture directly, or implement a custom widget" +)] +#[allow(deprecated)] pub fn component<'a, C, Message, Theme, Renderer>( component: C, ) -> Element<'a, Message, Theme, Renderer> |