Expose iced_pure through a pure feature in iced

Besides exposing the `iced_pure` crate, enabling the `pure` feature also
provides pure versions of both the `Application` and `Sandbox` traits!
🎉
This commit is contained in:
Héctor Ramón Jiménez 2022-02-11 17:51:33 +07:00
parent 897188317b
commit 66d69b5c9a
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
7 changed files with 344 additions and 14 deletions

29
src/pure.rs Normal file
View file

@ -0,0 +1,29 @@
//! Leverage pure, virtual widgets in your application.
//!
//! The widgets found in this module are completely stateless versions of
//! [the original widgets].
//!
//! Effectively, this means that, as a user of the library, you do not need to
//! keep track of the local state of each widget (e.g. [`button::State`]).
//! Instead, the runtime will keep track of everything for you!
//!
//! You can embed pure widgets anywhere in your [impure `Application`] using the
//! [`Pure`] widget and some [`State`].
//!
//! In case you want to only use pure widgets in your application, this module
//! offers an alternate [`Application`] trait with a completely pure `view`
//! method.
//!
//! [the original widgets]: crate::widget
//! [`button::State`]: crate::widget::button::State
//! [impure `Application`]: crate::Application
pub use iced_pure::{Element as _, *};
/// A generic, pure [`Widget`].
pub type Element<Message> = iced_pure::Element<Message, crate::Renderer>;
mod application;
mod sandbox;
pub use application::Application;
pub use sandbox::Sandbox;