Trait panoramix::backend::VirtualDom[][src]

pub trait VirtualDom<CpEvent, CpState>: Debug {
    type AggregateChildrenState: Clone + Default + Debug + PartialEq;
    type TargetWidgetSeq: WidgetSequence;
    type Event;
    fn init_tree(&self) -> Self::TargetWidgetSeq;
fn reconcile(
        &self,
        other: &Self,
        widget_seq: &mut Self::TargetWidgetSeq,
        ctx: &mut ReconcileCtx<'_, '_, '_, '_, '_>
    ); fn update_value(&mut self, other: Self)
    where
        Self: Sized
, { ... }
fn process_event(
        &self,
        component_state: &mut CpState,
        children_state: &mut Self::AggregateChildrenState,
        widget_seq: &mut Self::TargetWidgetSeq,
        cx: &mut GlobalEventCx<'_>
    ) -> Option<CpEvent> { ... }
fn process_local_event(
        &self,
        component_state: &mut CpState,
        children_state: &mut Self::AggregateChildrenState,
        widget_seq: &mut Self::TargetWidgetSeq,
        cx: &mut GlobalEventCx<'_>
    ) -> Option<Self::Event> { ... } }

Associated Types

Loading content...

Required methods

fn init_tree(&self) -> Self::TargetWidgetSeq[src]

fn reconcile(
    &self,
    other: &Self,
    widget_seq: &mut Self::TargetWidgetSeq,
    ctx: &mut ReconcileCtx<'_, '_, '_, '_, '_>
)
[src]

Loading content...

Provided methods

fn update_value(&mut self, other: Self) where
    Self: Sized
[src]

fn process_event(
    &self,
    component_state: &mut CpState,
    children_state: &mut Self::AggregateChildrenState,
    widget_seq: &mut Self::TargetWidgetSeq,
    cx: &mut GlobalEventCx<'_>
) -> Option<CpEvent>
[src]

fn process_local_event(
    &self,
    component_state: &mut CpState,
    children_state: &mut Self::AggregateChildrenState,
    widget_seq: &mut Self::TargetWidgetSeq,
    cx: &mut GlobalEventCx<'_>
) -> Option<Self::Event>
[src]

Loading content...

Implementations on Foreign Types

impl<CpEvent, CpState, Child: VirtualDom<CpEvent, CpState>> VirtualDom<CpEvent, CpState> for Option<Child>[src]

type Event = NoEvent

type AggregateChildrenState = Option<Child::AggregateChildrenState>

type TargetWidgetSeq = Option<Child::TargetWidgetSeq>

impl<CpState, CpEvent, ChildLeft: VirtualDom<CpEvent, CpState>, ChildRight: VirtualDom<CpEvent, CpState>> VirtualDom<CpEvent, CpState> for Either<ChildLeft, ChildRight>[src]

type Event = NoEvent

type AggregateChildrenState = Option<Either<ChildLeft::AggregateChildrenState, ChildRight::AggregateChildrenState>>

type TargetWidgetSeq = Either<ChildLeft::TargetWidgetSeq, ChildRight::TargetWidgetSeq>

Loading content...

Implementors

impl<ChildCpEvent, ChildCpState: Clone + Default + Debug + PartialEq, Child: VirtualDom<ChildCpEvent, ChildCpState>, ParentCpEvent, ParentCpState> VirtualDom<ParentCpEvent, ParentCpState> for ComponentOutput<ChildCpEvent, ChildCpState, Child, ParentCpEvent, ParentCpState>[src]


type Event = ChildCpEvent

type AggregateChildrenState = (ChildCpState, Child::AggregateChildrenState)

type TargetWidgetSeq = Child::TargetWidgetSeq

impl<CpEvent, CpState> VirtualDom<CpEvent, CpState> for VirtualDomBox<CpEvent, CpState>[src]

type Event = NoEvent

type AggregateChildrenState = Option<AnyStateBox>

type TargetWidgetSeq = WidgetSeqBox

impl<CpEvent, CpState> VirtualDom<CpEvent, CpState> for ButtonData<CpEvent, CpState>[src]

type Event = ButtonClick

type AggregateChildrenState = ()

type TargetWidgetSeq = ButtonWidget

impl<CpEvent, CpState> VirtualDom<CpEvent, CpState> for CheckboxData<CpEvent, CpState>[src]

type Event = Toggled

type AggregateChildrenState = ()

type TargetWidgetSeq = SingleCheckboxWidget

impl<CpEvent, CpState> VirtualDom<CpEvent, CpState> for EmptyElementData<CpEvent, CpState>[src]

type Event = NoEvent

type AggregateChildrenState = ()

type TargetWidgetSeq = EmptySequence

impl<CpEvent, CpState> VirtualDom<CpEvent, CpState> for LabelData<CpEvent, CpState>[src]

type Event = NoEvent

type AggregateChildrenState = ()

type TargetWidgetSeq = SingleWidget<Label<DruidAppData>>

impl<CpEvent, CpState> VirtualDom<CpEvent, CpState> for TextBoxData<CpEvent, CpState>[src]

type Event = TextChanged

type AggregateChildrenState = ()

type TargetWidgetSeq = TextBoxWidget

impl<CpEvent, CpState, C0: VirtualDom<CpEvent, CpState>, C1: VirtualDom<CpEvent, CpState>, C2: VirtualDom<CpEvent, CpState>, C3: VirtualDom<CpEvent, CpState>, C4: VirtualDom<CpEvent, CpState>, C5: VirtualDom<CpEvent, CpState>, C6: VirtualDom<CpEvent, CpState>, C7: VirtualDom<CpEvent, CpState>, C8: VirtualDom<CpEvent, CpState>, C9: VirtualDom<CpEvent, CpState>, C10: VirtualDom<CpEvent, CpState>, C11: VirtualDom<CpEvent, CpState>> VirtualDom<CpEvent, CpState> for ElementTupleData<C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, CpEvent, CpState>[src]

type Event = NoEvent

type AggregateChildrenState = (C0::AggregateChildrenState, C1::AggregateChildrenState, C2::AggregateChildrenState, C3::AggregateChildrenState, C4::AggregateChildrenState, C5::AggregateChildrenState, C6::AggregateChildrenState, C7::AggregateChildrenState, C8::AggregateChildrenState, C9::AggregateChildrenState, C10::AggregateChildrenState, C11::AggregateChildrenState)

type TargetWidgetSeq = WidgetTuple<C0::TargetWidgetSeq, C1::TargetWidgetSeq, C2::TargetWidgetSeq, C3::TargetWidgetSeq, C4::TargetWidgetSeq, C5::TargetWidgetSeq, C6::TargetWidgetSeq, C7::TargetWidgetSeq, C8::TargetWidgetSeq, C9::TargetWidgetSeq, C10::TargetWidgetSeq, C11::TargetWidgetSeq>

impl<CpEvent, CpState, Child: VirtualDom<CpEvent, CpState>> VirtualDom<CpEvent, CpState> for ElementListData<Child, CpEvent, CpState>[src]

type Event = NoEvent

type AggregateChildrenState = Vec<(String, Child::AggregateChildrenState)>

type TargetWidgetSeq = WidgetList<Child::TargetWidgetSeq>

impl<CpEvent, CpState, Child: VirtualDom<CpEvent, CpState>> VirtualDom<CpEvent, CpState> for FlexData<Child, CpEvent, CpState>[src]

type Event = NoEvent

type AggregateChildrenState = Child::AggregateChildrenState

type TargetWidgetSeq = SingleWidget<FlexWidget<Child::TargetWidgetSeq>>

impl<CpEvent, CpState, EventParam, EventReturn, CbReturn: OptionOrUnit<EventReturn>, Child: VirtualDom<CpEvent, CpState>, Cb: Fn(&mut CpState, EventParam) -> CbReturn> VirtualDom<CpEvent, CpState> for WithEventTarget<CpEvent, CpState, EventParam, EventReturn, CbReturn, Child, Cb> where
    Child::Event: ParentEvent<EventParam>,
    CpEvent: ParentEvent<EventReturn>, 
[src]

type Event = Child::Event

type AggregateChildrenState = Child::AggregateChildrenState

type TargetWidgetSeq = Child::TargetWidgetSeq

Loading content...