Skip to main content

step_with

Function step_with 

Source
pub fn step_with<P: Protocol + ?Sized>(
    p: &mut P,
    event: ProtoEvent<P>,
    now: Time,
    rng: &mut dyn RngCore,
    store: &mut dyn Store<P::Meta, P::Entry>,
    next_timer: &mut u64,
) -> Vec<ProtoEffect<P>> ⓘ
Expand description

Deliver one event to p against a timer identity source the caller owns.

step and step_in start identities at zero on every call, which is right for a protocol driven alone and wrong for a composed one: two layers would each be handed identity zero, and each would accept the other’s expiry as its own. A driver owns one source for a whole run — see Sim — and a test driving a stack by hand must do the same.

Nothing listens for what the protocol narrates. Use step_noting to read that too.