CompiledSimInstance

Struct CompiledSimInstance 

Source
pub struct CompiledSimInstance<'a> { /* private fields */ }
Available on crate feature sim and stageleft_runtime only.
Expand description

A single instance of a compiled Hydro simulation, which provides methods to interactively execute the simulation, feed inputs, and receive outputs.

Implementations§

Source§

impl<'a> CompiledSimInstance<'a>

Source

pub fn connect_sink_bincode<T: Serialize + 'static, M, O: Ordering, R: Retries>( &mut self, port: &ExternalBincodeSink<T, M, O, R>, ) -> SimSender<T, O, R>

👎Deprecated: Use connect instead

Like the corresponding method on crate::compile::deploy::DeployResult, connects to the given input port, and returns a closure that can be used to send messages to it.

Source

pub fn connect_source_bincode<T: DeserializeOwned + 'static, O: Ordering, R: Retries>( &mut self, port: &ExternalBincodeStream<T, O, R>, ) -> SimReceiver<'a, T, O, R>

👎Deprecated: Use connect instead

Like the corresponding method on crate::compile::deploy::DeployResult, connects to the given output port, and returns a stream that can be used to receive messages from it.

Source

pub fn connect<'b, P: ConnectableAsync<&'b mut Self>>( &'b mut self, port: P, ) -> <P as ConnectableAsync<&'b mut Self>>::Output

Establishes a connection to the given input or output port, returning either a SimSender (for input ports) or a stream (for output ports). This should be invoked before calling Self::launch, and should only be invoked once per port.

Source

pub fn launch(self)

Launches the simulation, which will asynchronously simulate the Hydro program. This should be invoked after connecting all inputs and outputs, but before receiving any messages.

Source

pub fn schedule_with_logger<W: Write>( self, log_writer: W, ) -> impl use<W> + Future<Output = ()>

Returns a future that schedules simulation with the given logger for reporting the simulation trace.

See Self::launch for more details.

Trait Implementations§

Source§

impl<'a, T: Serialize + 'static, M, O: Ordering, R: Retries> ConnectableAsync<&mut CompiledSimInstance<'a>> for &ExternalBincodeSink<T, M, O, R>

Source§

type Output = SimSender<T, O, R>

Available on crate feature build only.
Source§

async fn connect(self, ctx: &mut CompiledSimInstance<'a>) -> Self::Output

Available on crate feature build only.
Source§

impl<'a, T: DeserializeOwned + 'static, O: Ordering, R: Retries> ConnectableAsync<&mut CompiledSimInstance<'a>> for &ExternalBincodeStream<T, O, R>

Source§

type Output = SimReceiver<'a, T, O, R>

Available on crate feature build only.
Source§

async fn connect(self, ctx: &mut CompiledSimInstance<'a>) -> Self::Output

Available on crate feature build only.

Auto Trait Implementations§

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToSinkBuild for T

Source§

fn iter_to_sink_build(self) -> SendIterBuild<Self>
where Self: Sized + Iterator,

Starts a SinkBuild adaptor chain to send all items from self as an Iterator.
Source§

fn stream_to_sink_build(self) -> SendStreamBuild<Self>
where Self: Sized + Stream,

Starts a SinkBuild adaptor chain to send all items from self as a [Stream].
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

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,