pub struct Flaky<T>where
T: SimObject,{
pub entity: Rc<Entity>,
/* 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.
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.
Fields§
§entity: Rc<Entity>Every component should include an Entity that defines where in the overall simulation hierarchy it is. The Entity is also used to filter logging.
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,
parent: &Rc<Entity>,
name: &str,
drop_ratio: f64,
seed: u64,
) -> Result<Rc<Self>, SimError>
pub fn new_and_register( engine: &Engine, 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.