ori_core::view

Trait AnyView

Source
pub trait AnyView<T> {
    // Required methods
    fn as_any(&self) -> &dyn Any;
    fn dyn_build(
        &mut self,
        cx: &mut BuildCx<'_, '_>,
        data: &mut T,
    ) -> Box<dyn Any>;
    fn dyn_rebuild(
        &mut self,
        state: &mut AnyState,
        cx: &mut RebuildCx<'_, '_>,
        data: &mut T,
        old: &dyn AnyView<T>,
    );
    fn dyn_event(
        &mut self,
        state: &mut AnyState,
        cx: &mut EventCx<'_, '_>,
        data: &mut T,
        event: &Event,
    ) -> bool;
    fn dyn_layout(
        &mut self,
        state: &mut AnyState,
        cx: &mut LayoutCx<'_, '_>,
        data: &mut T,
        space: Space,
    ) -> Size;
    fn dyn_draw(
        &mut self,
        state: &mut AnyState,
        cx: &mut DrawCx<'_, '_>,
        data: &mut T,
    );
}
Expand description

A view that supports dynamic dispatch.

Required Methods§

Source

fn as_any(&self) -> &dyn Any

Get a reference to the underlying Any object.

Source

fn dyn_build(&mut self, cx: &mut BuildCx<'_, '_>, data: &mut T) -> Box<dyn Any>

Build the view.

Source

fn dyn_rebuild( &mut self, state: &mut AnyState, cx: &mut RebuildCx<'_, '_>, data: &mut T, old: &dyn AnyView<T>, )

Rebuild the view.

Source

fn dyn_event( &mut self, state: &mut AnyState, cx: &mut EventCx<'_, '_>, data: &mut T, event: &Event, ) -> bool

Handle an event.

Source

fn dyn_layout( &mut self, state: &mut AnyState, cx: &mut LayoutCx<'_, '_>, data: &mut T, space: Space, ) -> Size

Calculate the layout.

Source

fn dyn_draw( &mut self, state: &mut AnyState, cx: &mut DrawCx<'_, '_>, data: &mut T, )

Draw the view.

Implementors§

Source§

impl<T, V> AnyView<T> for V
where V: View<T> + Any, V::State: Any,