pub struct DefaultScopePolicy<F, Transfer>where
F: FnOnce(<Transfer as ScopeTransfer>::In) -> <Transfer as ScopeTransfer>::State,
Transfer: ScopeTransfer,{ /* private fields */ }
Expand description
A default implementation of ScopePolicy
that takes a function and a transfer.
Implementations§
§impl<F, Transfer> DefaultScopePolicy<F, Transfer>where
F: FnOnce(<Transfer as ScopeTransfer>::In) -> <Transfer as ScopeTransfer>::State,
Transfer: ScopeTransfer,
impl<F, Transfer> DefaultScopePolicy<F, Transfer>where F: FnOnce(<Transfer as ScopeTransfer>::In) -> <Transfer as ScopeTransfer>::State, Transfer: ScopeTransfer,
pub fn new(make_state: F, transfer: Transfer) -> DefaultScopePolicy<F, Transfer>
pub fn new(make_state: F, transfer: Transfer) -> DefaultScopePolicy<F, Transfer>
Create a ScopePolicy
from a factory function and a ScopeTransfer
.
§impl<F, L, In, State> DefaultScopePolicy<F, LensScopeTransfer<L, In, State>>where
F: FnOnce(In) -> State,
L: Lens<State, In>,
In: Data,
State: Data,
impl<F, L, In, State> DefaultScopePolicy<F, LensScopeTransfer<L, In, State>>where F: FnOnce(In) -> State, L: Lens<State, In>, In: Data, State: Data,
pub fn from_lens(
make_state: F,
lens: L
) -> DefaultScopePolicy<F, LensScopeTransfer<L, In, State>>
pub fn from_lens( make_state: F, lens: L ) -> DefaultScopePolicy<F, LensScopeTransfer<L, In, State>>
Create a ScopePolicy
from a factory function and a lens onto that
Scope
’s state.
Trait Implementations§
§impl<F, Transfer> ScopePolicy for DefaultScopePolicy<F, Transfer>where
F: FnOnce(<Transfer as ScopeTransfer>::In) -> <Transfer as ScopeTransfer>::State,
Transfer: ScopeTransfer,
impl<F, Transfer> ScopePolicy for DefaultScopePolicy<F, Transfer>where F: FnOnce(<Transfer as ScopeTransfer>::In) -> <Transfer as ScopeTransfer>::State, Transfer: ScopeTransfer,
§type In = <Transfer as ScopeTransfer>::In
type In = <Transfer as ScopeTransfer>::In
The type of data that comes in from the surrounding application or scope.
§type State = <Transfer as ScopeTransfer>::State
type State = <Transfer as ScopeTransfer>::State
The type of data that the
Scope
will maintain internally.
This will usually be larger than the input data, and will embed the input data.§type Transfer = Transfer
type Transfer = Transfer
The type of transfer that will be used to synchronise internal and application state
§fn create(
self,
input: &<DefaultScopePolicy<F, Transfer> as ScopePolicy>::In
) -> (<DefaultScopePolicy<F, Transfer> as ScopePolicy>::State, <DefaultScopePolicy<F, Transfer> as ScopePolicy>::Transfer)
fn create( self, input: &<DefaultScopePolicy<F, Transfer> as ScopePolicy>::In ) -> (<DefaultScopePolicy<F, Transfer> as ScopePolicy>::State, <DefaultScopePolicy<F, Transfer> as ScopePolicy>::Transfer)
Make a new state and transfer from the input. Read more
Auto Trait Implementations§
impl<F, Transfer> RefUnwindSafe for DefaultScopePolicy<F, Transfer>where F: RefUnwindSafe, Transfer: RefUnwindSafe,
impl<F, Transfer> Send for DefaultScopePolicy<F, Transfer>where F: Send, Transfer: Send,
impl<F, Transfer> Sync for DefaultScopePolicy<F, Transfer>where F: Sync, Transfer: Sync,
impl<F, Transfer> Unpin for DefaultScopePolicy<F, Transfer>where F: Unpin, Transfer: Unpin,
impl<F, Transfer> UnwindSafe for DefaultScopePolicy<F, Transfer>where F: UnwindSafe, Transfer: UnwindSafe,
Blanket Implementations§
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> RoundFrom<T> for T
impl<T> RoundFrom<T> for T
§fn round_from(x: T) -> T
fn round_from(x: T) -> T
Performs the conversion.
§impl<T, U> RoundInto<U> for Twhere
U: RoundFrom<T>,
impl<T, U> RoundInto<U> for Twhere U: RoundFrom<T>,
§fn round_into(self) -> U
fn round_into(self) -> U
Performs the conversion.