pub struct Flaky<T>where
T: SimObject,{ /* private fields */ }Expand description
The overall structure for this compoment.
Note that in this example it is a Generic type in that it can be used in
a simulation of any type - as long as that type implements the SimObject
trait.
Every entity needs to implement the GetEntity trait in order to provide
the entity() access function to get at the private entity member. The
EntityGet automatically implements this function for this struct.
The fmt::Display trait is used when converting a component to a string
for logging/printing using “{}”. Simply pass through to the entity. This can
be hand-written, but the EntityDisplay derive writes this automatically.
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,
drop_ratio: f64,
seed: u64,
) -> Result<Rc<Self>, SimError>
pub fn new_and_register( engine: &Engine, clock: &Clock, parent: &Rc<Entity>, name: &str, drop_ratio: f64, seed: u64, ) -> Result<Rc<Self>, SimError>
In this case, the new() function creates the component from the
parameters provided.
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.