Context

Struct Context 

Source
pub struct Context<State> {
    pub action: ActionContext<State>,
    pub state: Option<State>,
}
Expand description

The context of the action. This is handed into actions when they’re invoked, and is the underpinning mechanism for distributing side-effects, as well as action composition.

At compile time, the action context grants us, and the consumers, the ability to structure action systems in typesafe ways. At runtime, the context is used to distribute the state of the system, as well as any additional crate-specific plumbing that the action may require.

Fields§

§action: ActionContext<State>

The action context, describing any additional context that the action may carry.

§state: Option<State>

The state of the system, determined by the consumer. This can be absent if the various actions are called before being properly initialized. The type system should prevent this most of the time by requiring the state to be present before invoking actions or calling them as services.

Implementations§

Source§

impl<State> Context<State>

Source

pub fn from_action(action: ActionContext<State>) -> Self

Create a new context with the given action.

Source

pub fn from_state(state: State) -> Self

Create a new context with the given state.

Source

pub fn state(&self) -> Result<State, StateNotReadyError>
where State: Clone,

Return the state. Returns an error if the state is not ready.

Source

pub fn with_action(action: ActionContext<State>, state: State) -> Self

Create a new context with the given state and action context.

Trait Implementations§

Source§

impl<State: Clone> Clone for Context<State>

Source§

fn clone(&self) -> Context<State>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<State: Debug> Debug for Context<State>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<State: Default> Default for Context<State>

Source§

fn default() -> Context<State>

Returns the “default value” for a type. Read more
Source§

impl<State> From<ActionContext<State>> for Context<State>

Source§

fn from(action: ActionContext<State>) -> Self

Converts to this type from the input type.
Source§

impl<State> From<State> for Context<State>

Source§

fn from(state: State) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<State> Freeze for Context<State>
where State: Freeze,

§

impl<State> !RefUnwindSafe for Context<State>

§

impl<State> Send for Context<State>
where State: Send,

§

impl<State> Sync for Context<State>
where State: Sync,

§

impl<State> Unpin for Context<State>
where State: Unpin,

§

impl<State> !UnwindSafe for Context<State>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<!> for T

Source§

fn from(t: !) -> T

Converts to this type from the input type.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,