pub struct View<'a, S>where
S: AppState,{
pub state: &'a S,
pub runtime: &'a RuntimeState,
pub env: &'a Env,
pub layout: Option<&'a LayoutSnapshot>,
}Expand description
Read-only access to application state and environment during widget building.
View is the primary way widgets read data. It is parameterised over the
concrete AppState type S, giving type-safe access to state while
also exposing the theme, i18n registry, layout snapshot from the previous
frame, and animation values.
§Example
ⓘ
fn build(&self, _ctx: &mut BuildCtx<MyState>, view: &View<MyState>) -> Node {
let name = &view.state.user_name;
let theme = view.theme();
Text::new(format!("Hello, {}!", name))
.color(theme.tokens.colors.primary)
.into_node()
}Fields§
§state: &'a SReference to the current application state.
runtime: &'a RuntimeStateRuntime interaction, scroll, text-edit, and animation state.
env: &'a EnvEnvironment (theme, i18n, viewport size, locale).
layout: Option<&'a LayoutSnapshot>Layout snapshot from the previous frame, if available.
Implementations§
Source§impl<'a, S> View<'a, S>where
S: AppState,
impl<'a, S> View<'a, S>where
S: AppState,
pub fn new( state: &'a S, runtime: &'a RuntimeState, env: &'a Env, layout: Option<&'a LayoutSnapshot>, ) -> View<'a, S>
pub fn theme(&self) -> &Theme
pub fn i18n(&self) -> &I18nRegistry
pub fn get_rect(&self, id: WidgetNodeId) -> Option<LayoutRect>
pub fn get_constraints(&self, id: WidgetNodeId) -> Option<BoxConstraints>
pub fn viewport_size(&self) -> LayoutSize
pub fn select<T>(&self) -> <T as Selector<S>>::Outputwhere
T: Selector<S>,
pub fn animation_value( &self, widget_id: WidgetNodeId, property: &AnimationPropertyId, ) -> f32
pub fn video_state(&self, widget_id: WidgetNodeId) -> Option<&VideoState>
Auto Trait Implementations§
impl<'a, S> Freeze for View<'a, S>
impl<'a, S> !RefUnwindSafe for View<'a, S>
impl<'a, S> Send for View<'a, S>
impl<'a, S> Sync for View<'a, S>
impl<'a, S> Unpin for View<'a, S>
impl<'a, S> UnsafeUnpin for View<'a, S>
impl<'a, S> !UnwindSafe for View<'a, S>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more