Trait xilem::MasonryView

source ·
pub trait MasonryView<State, Action = ()>: Send + 'static {
    type Element: Widget;
    type ViewState;

    // Required methods
    fn build(
        &self,
        cx: &mut ViewCx
    ) -> (WidgetPod<Self::Element>, Self::ViewState);
    fn rebuild(
        &self,
        view_state: &mut Self::ViewState,
        cx: &mut ViewCx,
        prev: &Self,
        element: WidgetMut<'_, Self::Element>
    );
    fn message(
        &self,
        view_state: &mut Self::ViewState,
        id_path: &[ViewId],
        message: Box<dyn Any>,
        app_state: &mut State
    ) -> MessageResult<Action>;
}

Required Associated Types§

Required Methods§

source

fn build(&self, cx: &mut ViewCx) -> (WidgetPod<Self::Element>, Self::ViewState)

source

fn rebuild( &self, view_state: &mut Self::ViewState, cx: &mut ViewCx, prev: &Self, element: WidgetMut<'_, Self::Element> )

source

fn message( &self, view_state: &mut Self::ViewState, id_path: &[ViewId], message: Box<dyn Any>, app_state: &mut State ) -> MessageResult<Action>

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<F, State, Action> MasonryView<State, Action> for Button<F>
where F: Fn(&mut State) -> Action + Send + 'static,

source§

impl<F, State, Action> MasonryView<State, Action> for Checkbox<F>
where F: Fn(&mut State, bool) -> Action + Send + 'static,

source§

impl<State, Action> MasonryView<State, Action> for Label

source§

impl<State, Action> MasonryView<State, Action> for Prose

source§

impl<State, Action, Marker: 'static, Seq> MasonryView<State, Action> for Flex<Seq, Marker>
where Seq: ViewSequence<State, Action, Marker>,

§

type Element = Flex

§

type ViewState = <Seq as ViewSequence<State, Action, Marker>>::SeqState

source§

impl<State: 'static, Action: 'static> MasonryView<State, Action> for Textbox<State, Action>

source§

impl<T: 'static, A: 'static> MasonryView<T, A> for BoxedMasonryView<T, A>

§

type Element = DynWidget

§

type ViewState = AnyViewState