Struct boomerang::builder::ReactorBuilderState
source · pub struct ReactorBuilderState<'a> { /* private fields */ }
Expand description
Builder struct used to facilitate construction of a ReactorBuilder by user/generated code.
Implementations§
source§impl<'a> ReactorBuilderState<'a>
impl<'a> ReactorBuilderState<'a>
sourcepub fn get_key(&self) -> BuilderReactorKey
pub fn get_key(&self) -> BuilderReactorKey
Get the [ReactorKey
] for this [ReactorBuilder
]
sourcepub fn get_startup_action(&self) -> TypedActionKey
pub fn get_startup_action(&self) -> TypedActionKey
Get the startup action for this reactor
sourcepub fn get_shutdown_action(&self) -> TypedActionKey
pub fn get_shutdown_action(&self) -> TypedActionKey
Get the shutdown action for this reactor
sourcepub fn add_timer(
&mut self,
name: &str,
period: Option<Duration>,
offset: Option<Duration>
) -> Result<TypedActionKey, BuilderError>
pub fn add_timer( &mut self, name: &str, period: Option<Duration>, offset: Option<Duration> ) -> Result<TypedActionKey, BuilderError>
Add a new timer action to the reactor.
sourcepub fn add_logical_action<T: ActionData>(
&mut self,
name: &str,
min_delay: Option<Duration>
) -> Result<TypedActionKey<T, Logical>, BuilderError>
pub fn add_logical_action<T: ActionData>( &mut self, name: &str, min_delay: Option<Duration> ) -> Result<TypedActionKey<T, Logical>, BuilderError>
Add a new logical action to the reactor.
This method forwards to the implementation at
crate::builder::env::EnvBuilder::add_logical_action
.
pub fn add_physical_action<T: ActionData>( &mut self, name: &str, min_delay: Option<Duration> ) -> Result<TypedActionKey<T, Physical>, BuilderError>
sourcepub fn add_reaction(
&mut self,
name: &str,
reaction_fn: Box<dyn ReactionFn>
) -> ReactionBuilderState<'_>
pub fn add_reaction( &mut self, name: &str, reaction_fn: Box<dyn ReactionFn> ) -> ReactionBuilderState<'_>
Add a new reaction to this reactor.
sourcepub fn add_port<T: PortData>(
&mut self,
name: &str,
port_type: PortType
) -> Result<TypedPortKey<T>, BuilderError>
pub fn add_port<T: PortData>( &mut self, name: &str, port_type: PortType ) -> Result<TypedPortKey<T>, BuilderError>
Add a new port to this reactor.
sourcepub fn add_child_reactor<R: Reactor>(
&mut self,
name: &str,
state: R::State
) -> Result<R, BuilderError>
pub fn add_child_reactor<R: Reactor>( &mut self, name: &str, state: R::State ) -> Result<R, BuilderError>
Add a new child reactor to this reactor.
sourcepub fn bind_port<T: PortData>(
&mut self,
port_a_key: TypedPortKey<T>,
port_b_key: TypedPortKey<T>
) -> Result<(), BuilderError>
pub fn bind_port<T: PortData>( &mut self, port_a_key: TypedPortKey<T>, port_b_key: TypedPortKey<T> ) -> Result<(), BuilderError>
Bind 2 ports on this reactor. This has the logical meaning of “connecting” port_a
to
port_b
.
pub fn finish(self) -> Result<BuilderReactorKey, BuilderError>
Trait Implementations§
source§impl<'a> FindElements for ReactorBuilderState<'a>
impl<'a> FindElements for ReactorBuilderState<'a>
fn get_port_by_name( &self, port_name: &str ) -> Result<BuilderPortKey, BuilderError>
fn get_action_by_name( &self, action_name: &str ) -> Result<BuilderActionKey, BuilderError>
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for ReactorBuilderState<'a>
impl<'a> !Send for ReactorBuilderState<'a>
impl<'a> !Sync for ReactorBuilderState<'a>
impl<'a> Unpin for ReactorBuilderState<'a>
impl<'a> !UnwindSafe for ReactorBuilderState<'a>
Blanket Implementations§
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert
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
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.