Struct Flaky

Source
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.

Source

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.

Source

pub fn port_rx(&self) -> PortStateResult<T>

This provides the InPort to which you can connect

Source

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.

Trait Implementations§

Source§

impl<T> Display for Flaky<T>
where T: SimObject,

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T> GetEntity for Flaky<T>
where T: SimObject,

Source§

fn entity(&self) -> &Rc<Entity>

Return the [Entity]
Source§

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,

Provides the method that defines the active element of this component. Read more

Auto Trait Implementations§

§

impl<T> !Freeze for Flaky<T>

§

impl<T> !RefUnwindSafe for Flaky<T>

§

impl<T> !Send for Flaky<T>

§

impl<T> !Sync for Flaky<T>

§

impl<T> Unpin for Flaky<T>

§

impl<T> !UnwindSafe for Flaky<T>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V