pub struct Flaky<T>where
T: SimObject,{ /* private fields */ }Expand description
A component needs to support being cloned and also being printed for debug logging.
The EntityGet automatically implements the GetEntity trait for this
struct.
The EntityDisply automatically derives the Display trait as long as the
struct contains the entity.
Implementations§
Source§impl<T> Flaky<T>where
T: SimObject,
The next thing to do is define the generic functions for the new component.
impl<T> Flaky<T>where
T: SimObject,
The next thing to do is define the generic functions for the new component.
Sourcepub fn new_and_register(
engine: &Engine,
clock: &Clock,
parent: &Rc<Entity>,
name: &str,
config: &Config,
) -> Result<Rc<Self>, SimError>
pub fn new_and_register( engine: &Engine, clock: &Clock, parent: &Rc<Entity>, name: &str, config: &Config, ) -> Result<Rc<Self>, SimError>
In this case, the new_and_register() function creates the component
from the parameters provided as well as registering the component
with the Engine.
Sourcepub fn new_and_register_with_renames(
engine: &Engine,
clock: &Clock,
parent: &Rc<Entity>,
name: &str,
aka: Option<&Aka>,
config: &Config,
) -> Result<Rc<Self>, SimError>
pub fn new_and_register_with_renames( engine: &Engine, clock: &Clock, parent: &Rc<Entity>, name: &str, aka: Option<&Aka>, config: &Config, ) -> Result<Rc<Self>, SimError>
The new_and_register_with_renames() function does the work of creating
the component from the parameters provided, as well as registering the
component with the [Engine].
This function adds the ability to provide multiple names for the tx
port which is actually just the mapped through to the internal buffer’s
tx port.
Sourcepub fn connect_port_tx(&self, port_state: PortStateResult<T>) -> SimResult
pub fn connect_port_tx(&self, port_state: PortStateResult<T>) -> SimResult
The ports of this component are effectively defined by the functions
this component exposes. In this case, the connect_port_tx shows
that this component has an tx port which should be connected to an
rx port.
In this case the tx port is connected directly to the buffer’s tx
port.
Trait Implementations§
Source§impl<T> Runnable for Flaky<T>where
T: SimObject,
impl<T> Runnable for Flaky<T>where
T: SimObject,
Source§fn run<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = SimResult> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn run<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = SimResult> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Implement the active aspect of thie component
The run() function launches any sub-components and then performs the
functionality of this component.