pub struct RuntimeDriver<E, M> { /* private fields */ }Expand description
Drives one ready model/env session through its reset -> predict -> step
loop. Inert until a run* method is awaited.
Implementations§
Source§impl<E, M> RuntimeDriver<E, M>where
E: RuntimeEnv,
M: RuntimeModel,
impl<E, M> RuntimeDriver<E, M>where
E: RuntimeEnv,
M: RuntimeModel,
pub fn new( spec: RuntimeSessionSpec, env: E, model: M, hooks: Arc<dyn RuntimeHooks>, ) -> Self
pub async fn run(self) -> Result<RuntimeReport, RuntimeError>
pub async fn run_with_cancellation( self, cancellation: CancellationToken, ) -> Result<RuntimeReport, RuntimeError>
Sourcepub async fn run_with_cancellation_reason(
self,
cancellation: CancellationToken,
reason: impl Into<String>,
) -> Result<RuntimeReport, RuntimeError>
pub async fn run_with_cancellation_reason( self, cancellation: CancellationToken, reason: impl Into<String>, ) -> Result<RuntimeReport, RuntimeError>
Runs the session, attributing any cancellation of cancellation to
reason.
The reason is carried into RuntimeError::RouteCancelled, the
session_failed hook event, and the CloseRoute reason, so callers
(e.g. an owner that cancels for Ctrl+C, a deadline, or a sibling-route
failure) can supply an accurate cause instead of a hardcoded one.
Auto Trait Implementations§
impl<E, M> !RefUnwindSafe for RuntimeDriver<E, M>
impl<E, M> !UnwindSafe for RuntimeDriver<E, M>
impl<E, M> Freeze for RuntimeDriver<E, M>
impl<E, M> Send for RuntimeDriver<E, M>
impl<E, M> Sync for RuntimeDriver<E, M>
impl<E, M> Unpin for RuntimeDriver<E, M>
impl<E, M> UnsafeUnpin for RuntimeDriver<E, M>where
E: UnsafeUnpin,
M: UnsafeUnpin,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request