Struct Flaky

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

Source

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.

Source

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.

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.

In this case the tx port is connected directly to the buffer’s tx 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,

Implement the active aspect of thie component

The run() function launches any sub-components and then performs the functionality of this component.

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