pub enum Effect {
Receive {
at_stage: Name,
},
Send {
from: Name,
to: Name,
msg: Box<dyn SendData>,
},
Call {
from: Name,
to: Name,
duration: Duration,
msg: Box<dyn SendData>,
},
Clock {
at_stage: Name,
},
Wait {
at_stage: Name,
duration: Duration,
},
Schedule {
at_stage: Name,
msg: Box<dyn SendData>,
id: ScheduleId,
},
CancelSchedule {
at_stage: Name,
id: ScheduleId,
},
External {
at_stage: Name,
effect: Box<dyn ExternalEffect>,
},
Terminate {
at_stage: Name,
},
AddStage {
at_stage: Name,
name: Name,
},
WireStage {
at_stage: Name,
name: Name,
initial_state: Box<dyn SendData>,
tombstone: Box<dyn SendData>,
},
Contramap {
at_stage: Name,
original: Name,
new_name: Name,
},
}Expand description
An effect emitted by a stage.
Variants§
Receive
Send
Call
Clock
Wait
Schedule
CancelSchedule
External
Terminate
AddStage
WireStage
Contramap
Implementations§
Source§impl Effect
impl Effect
Sourcepub fn send(
from: impl AsRef<str>,
to: impl AsRef<str>,
msg: Box<dyn SendData>,
) -> Self
pub fn send( from: impl AsRef<str>, to: impl AsRef<str>, msg: Box<dyn SendData>, ) -> Self
Construct a send effect.
Sourcepub fn call(
from: impl AsRef<str>,
to: impl AsRef<str>,
duration: Duration,
msg: Box<dyn SendData>,
) -> Self
pub fn call( from: impl AsRef<str>, to: impl AsRef<str>, duration: Duration, msg: Box<dyn SendData>, ) -> Self
Construct a call effect.
Sourcepub fn schedule(
at_stage: impl AsRef<str>,
msg: Box<dyn SendData>,
schedule_id: &ScheduleId,
) -> Self
pub fn schedule( at_stage: impl AsRef<str>, msg: Box<dyn SendData>, schedule_id: &ScheduleId, ) -> Self
Construct a schedule effect.
pub fn cancel(at_stage: impl AsRef<str>, schedule_id: &ScheduleId) -> Self
Sourcepub fn external(
at_stage: impl AsRef<str>,
effect: Box<dyn ExternalEffect>,
) -> Self
pub fn external( at_stage: impl AsRef<str>, effect: Box<dyn ExternalEffect>, ) -> Self
Construct an external effect.
Sourcepub fn add_stage(at_stage: impl AsRef<str>, name: impl AsRef<str>) -> Self
pub fn add_stage(at_stage: impl AsRef<str>, name: impl AsRef<str>) -> Self
Construct an add stage effect.
Sourcepub fn wire_stage(
at_stage: impl AsRef<str>,
name: impl AsRef<str>,
initial_state: Box<dyn SendData>,
tombstone: Option<Box<dyn SendData>>,
) -> Self
pub fn wire_stage( at_stage: impl AsRef<str>, name: impl AsRef<str>, initial_state: Box<dyn SendData>, tombstone: Option<Box<dyn SendData>>, ) -> Self
Construct a wire stage effect.
pub fn contramap( at_stage: impl AsRef<str>, original: impl AsRef<str>, new_name: impl AsRef<str>, ) -> Self
Sourcepub fn assert_receive<Msg>(&self, at_stage: impl AsRef<StageRef<Msg>>)
pub fn assert_receive<Msg>(&self, at_stage: impl AsRef<StageRef<Msg>>)
Assert that this effect is a receive effect.
Sourcepub fn assert_send<Msg1, Msg2: SendData + PartialEq>(
&self,
at_stage: impl AsRef<StageRef<Msg1>>,
target: impl AsRef<StageRef<Msg2>>,
msg: Msg2,
)
pub fn assert_send<Msg1, Msg2: SendData + PartialEq>( &self, at_stage: impl AsRef<StageRef<Msg1>>, target: impl AsRef<StageRef<Msg2>>, msg: Msg2, )
Assert that this effect is a send effect.
Sourcepub fn assert_clock<Msg>(&self, at_stage: impl AsRef<StageRef<Msg>>)
pub fn assert_clock<Msg>(&self, at_stage: impl AsRef<StageRef<Msg>>)
Assert that this effect is a clock effect.
Sourcepub fn assert_wait<Msg>(
&self,
at_stage: impl AsRef<StageRef<Msg>>,
duration: Duration,
)
pub fn assert_wait<Msg>( &self, at_stage: impl AsRef<StageRef<Msg>>, duration: Duration, )
Assert that this effect is a wait effect.
Sourcepub fn assert_call<Msg1, Msg2: SendData, Out>(
self,
at_stage: impl AsRef<StageRef<Msg1>>,
target: impl AsRef<StageRef<Msg2>>,
extract: impl FnOnce(Msg2) -> Out,
duration: Duration,
) -> Out
pub fn assert_call<Msg1, Msg2: SendData, Out>( self, at_stage: impl AsRef<StageRef<Msg1>>, target: impl AsRef<StageRef<Msg2>>, extract: impl FnOnce(Msg2) -> Out, duration: Duration, ) -> Out
Assert that this effect is a call effect.
Sourcepub fn assert_external<Eff: ExternalEffect + PartialEq>(
&self,
at_stage: impl AsRef<Name>,
effect: &Eff,
)
pub fn assert_external<Eff: ExternalEffect + PartialEq>( &self, at_stage: impl AsRef<Name>, effect: &Eff, )
Assert that this effect is an external effect.
Sourcepub fn extract_external<Eff: ExternalEffectAPI + PartialEq>(
self,
at_stage: impl AsRef<Name>,
) -> Box<Eff>
pub fn extract_external<Eff: ExternalEffectAPI + PartialEq>( self, at_stage: impl AsRef<Name>, ) -> Box<Eff>
Extract the external effect from this effect.
Sourcepub fn assert_add_stage<Msg>(
&self,
at_stage: impl AsRef<StageRef<Msg>>,
name: impl AsRef<str>,
)
pub fn assert_add_stage<Msg>( &self, at_stage: impl AsRef<StageRef<Msg>>, name: impl AsRef<str>, )
Assert that this effect is an add stage effect.
Sourcepub fn assert_wire_stage<Msg, St: SendData + PartialEq>(
&self,
at_stage: impl AsRef<StageRef<Msg>>,
name: impl AsRef<str>,
initial_state: St,
)
pub fn assert_wire_stage<Msg, St: SendData + PartialEq>( &self, at_stage: impl AsRef<StageRef<Msg>>, name: impl AsRef<str>, initial_state: St, )
Assert that this effect is a wire stage effect.
pub fn extract_wire_stage<Msg, St: SendData + PartialEq>( &self, at_stage: impl AsRef<StageRef<Msg>>, initial_state: St, ) -> &Name
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Effect
impl<'de> Deserialize<'de> for Effect
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for Effect
impl !Sync for Effect
impl !UnwindSafe for Effect
impl Freeze for Effect
impl Send for Effect
impl Unpin for Effect
impl UnsafeUnpin for Effect
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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>
Converts
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>
Converts
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