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>
impl<E, M> RuntimeDriver<E, M>
pub fn new( spec: RuntimeSessionSpec, env: E, model: M, hooks: Arc<dyn RuntimeHooks>, ) -> Self
Sourcepub fn with_prefetch(self, lead: u32) -> Self
pub fn with_prefetch(self, lead: u32) -> Self
Enable async inference: a group asks for its next action chunk while
lead (or fewer) replay frames of the current one remain, so the
forward overlaps the env steps. The chunk sees an observation up to
lead steps stale, so results are NOT comparable to the synchronous
loop — callers must label runs accordingly. lead == 0 leaves it off.
Sourcepub fn with_scheduler(self, scheduler: Box<dyn PredictScheduler>) -> Self
pub fn with_scheduler(self, scheduler: Box<dyn PredictScheduler>) -> Self
Replace the predict scheduling policy (default: EagerScheduler).
Sourcepub fn with_relay_policy(self, relay_policy: Arc<dyn RelayPolicy>) -> Self
pub fn with_relay_policy(self, relay_policy: Arc<dyn RelayPolicy>) -> Self
Replace the relay policy (default: RefusingRelayPolicy).
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 ReleaseAdapter 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> !Freeze for RuntimeDriver<E, M>
impl<E, M> !RefUnwindSafe for RuntimeDriver<E, M>
impl<E, M> !Sync for RuntimeDriver<E, M>
impl<E, M> !UnwindSafe for RuntimeDriver<E, M>
impl<E, M> Send for RuntimeDriver<E, M>
impl<E, M> Unpin for RuntimeDriver<E, M>
impl<E, M> UnsafeUnpin for RuntimeDriver<E, M>
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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>
T in a tonic::Request