pub trait ModelRunner: Send + Sync {
// Required methods
fn card(&self) -> ModelCard;
fn infer(&self, cx: &mut Cx, request: ModelRequest) -> Result<ModelResponse>;
// Provided methods
fn infer_stream(
&self,
cx: &mut Cx,
request: ModelRequest,
sink: &mut dyn ModelEventSink,
) -> Result<ModelResponse> { ... }
fn bid(&self, _request: &ModelRequest) -> Result<ModelBid> { ... }
}Expand description
Executable contract for a model backend or model-like runtime surface.
Required Methods§
Sourcefn infer(&self, cx: &mut Cx, request: ModelRequest) -> Result<ModelResponse>
fn infer(&self, cx: &mut Cx, request: ModelRequest) -> Result<ModelResponse>
Executes one non-streaming inference request.
Provided Methods§
Sourcefn infer_stream(
&self,
cx: &mut Cx,
request: ModelRequest,
sink: &mut dyn ModelEventSink,
) -> Result<ModelResponse>
fn infer_stream( &self, cx: &mut Cx, request: ModelRequest, sink: &mut dyn ModelEventSink, ) -> Result<ModelResponse>
Executes one streaming inference request.
The default implementation falls back to Self::infer and emits a
synthesized final event.
Sourcefn bid(&self, _request: &ModelRequest) -> Result<ModelBid>
fn bid(&self, _request: &ModelRequest) -> Result<ModelBid>
Returns an availability and score hint for market-style routing.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".