pub struct Pure<'a, Message, Renderer> { /* private fields */ }
pure
only.Expand description
A bridge between impure and pure widgets.
If you already have an existing iced
application, you do not need to switch completely to the new traits in order to benefit from the pure
module. Instead, you can leverage the new Pure
widget to include pure
widgets in your impure Application
.
For instance, let’s say we want to use our pure Counter
in an impure application:
use iced_pure::{self, Pure};
struct Impure {
state: pure::State,
counter: Counter,
}
impl Sandbox for Impure {
// ...
pub fn view(&mut self) -> Element<Self::Message> {
Pure::new(&mut self.state, self.counter.view()).into()
}
}
Pure
acts as a bridge between pure and impure widgets. It is completely opt-in and can be used to slowly migrate your application to the new architecture.
The purification of your application may trigger a bunch of important refactors, since it’s far easier to keep your data decoupled from the GUI state with stateless widgets. For this reason, I recommend starting small in the most nested views of your application and slowly expand the purity upwards.
Implementations
Trait Implementations
sourceimpl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> for Pure<'a, Message, Renderer> where
Message: 'a,
Renderer: 'a + Renderer,
impl<'a, Message, Renderer> Into<Element<'a, Message, Renderer>> for Pure<'a, Message, Renderer> where
Message: 'a,
Renderer: 'a + Renderer,
sourceimpl<'a, Message, Renderer> Widget<Message, Renderer> for Pure<'a, Message, Renderer> where
Message: 'a,
Renderer: 'a + Renderer,
impl<'a, Message, Renderer> Widget<Message, Renderer> for Pure<'a, Message, Renderer> where
Message: 'a,
Renderer: 'a + Renderer,
sourcefn on_event(
&mut self,
event: Event,
layout: Layout<'_>,
cursor_position: Point,
renderer: &Renderer,
clipboard: &mut dyn Clipboard,
shell: &mut Shell<'_, Message>
) -> Status
fn on_event(
&mut self,
event: Event,
layout: Layout<'_>,
cursor_position: Point,
renderer: &Renderer,
clipboard: &mut dyn Clipboard,
shell: &mut Shell<'_, Message>
) -> Status
sourcefn draw(
&self,
renderer: &mut Renderer,
style: &Style,
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle<f32>
)
fn draw(
&self,
renderer: &mut Renderer,
style: &Style,
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle<f32>
)
Draws the Widget
using the associated Renderer
.
sourcefn mouse_interaction(
&self,
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle<f32>,
renderer: &Renderer
) -> Interaction
fn mouse_interaction(
&self,
layout: Layout<'_>,
cursor_position: Point,
viewport: &Rectangle<f32>,
renderer: &Renderer
) -> Interaction
Returns the current mouse::Interaction
of the Widget
. Read more
Auto Trait Implementations
impl<'a, Message, Renderer> !RefUnwindSafe for Pure<'a, Message, Renderer>
impl<'a, Message, Renderer> !Send for Pure<'a, Message, Renderer>
impl<'a, Message, Renderer> !Sync for Pure<'a, Message, Renderer>
impl<'a, Message, Renderer> Unpin for Pure<'a, Message, Renderer>
impl<'a, Message, Renderer> !UnwindSafe for Pure<'a, Message, Renderer>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more