pub trait ModelRunner: Send + Sync {
// Required methods
fn card(&self) -> ModelCard;
fn infer(
&self,
cx: &mut Cx,
request: ModelRequest,
) -> Result<ModelResponse, Error>;
// Provided methods
fn infer_stream(
&self,
cx: &mut Cx,
request: ModelRequest,
sink: &mut dyn ModelEventSink,
) -> Result<ModelResponse, Error> { ... }
fn bid(&self, _request: &ModelRequest) -> Result<ModelBid, Error> { ... }
}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, Error>
fn infer( &self, cx: &mut Cx, request: ModelRequest, ) -> Result<ModelResponse, Error>
Executes one non-streaming inference request.
Provided Methods§
Sourcefn infer_stream(
&self,
cx: &mut Cx,
request: ModelRequest,
sink: &mut dyn ModelEventSink,
) -> Result<ModelResponse, Error>
fn infer_stream( &self, cx: &mut Cx, request: ModelRequest, sink: &mut dyn ModelEventSink, ) -> Result<ModelResponse, Error>
Executes one streaming inference request.
The default implementation falls back to Self::infer and emits a
synthesized final event.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".