pub struct PageCx<'a, P> { /* private fields */ }Expand description
What a page’s drawing is handed.
Carries the page type, not because drawing needs it, but because reading does: what a segment may read is a fact about where it sits, and this is where that fact enters the signature.
Implementations§
Source§impl<P: Segment> PageCx<'_, P>
impl<P: Segment> PageCx<'_, P>
Sourcepub fn state<R, I>(&self) -> (Rc<R>, Dispatch)
pub fn state<R, I>(&self) -> (Rc<R>, Dispatch)
The reducer’s state and actions.
No subscription, as in the terminal: egui redraws the whole frame, so there is nothing to invalidate - the next pass reads the state again. What does need saying is when a frame should happen at all, and that is the dispatcher’s job.
Which feature answers is settled at build time: this page installed it,
or a segment above listed it in Exports. The _ is Reaches’s
index, which says which of several impls applied - Rust has no partial
turbofish, so it has to be written.
The state comes shared, not copied: reading it every frame costs a count, and a change made mid-frame goes to a copy.
Sourcepub fn binding<R, I>(&self) -> ReducerBinding<R>
pub fn binding<R, I>(&self) -> ReducerBinding<R>
The reducer’s binding: its state, and a push straight into it.
For state the UI owns outright - what is picked in a tree, which tab
is open - claimed with cx.state::<R>().plain(). There is no domain
to ask, so there is no actor to ask it through: a click is the whole
story.
State a feature drives is not this: pushing into it goes behind the
back of whatever answers for it. Use PageCx::state and emit.
Trait Implementations§
Auto Trait Implementations§
impl<'a, P> !RefUnwindSafe for PageCx<'a, P>
impl<'a, P> !Send for PageCx<'a, P>
impl<'a, P> !Sync for PageCx<'a, P>
impl<'a, P> !UnwindSafe for PageCx<'a, P>
impl<'a, P> Freeze for PageCx<'a, P>
impl<'a, P> Unpin for PageCx<'a, P>
impl<'a, P> UnsafeUnpin for PageCx<'a, P>
Blanket Implementations§
impl<M> AllowedSignal<M> for Mwhere
M: 'static,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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>
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>
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)
&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)
&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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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> ⓘ
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> ⓘ
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