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_request(
&self,
cx: &mut Cx,
request: EvalRequest,
) -> Result<ModelResponse> { ... }
fn infer_stream(
&self,
cx: &mut Cx,
request: ModelRequest,
sink: &mut dyn ModelEventSink,
) -> Result<ModelResponse> { ... }
fn infer_stream_request(
&self,
cx: &mut Cx,
request: EvalRequest,
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_request(
&self,
cx: &mut Cx,
request: EvalRequest,
) -> Result<ModelResponse>
fn infer_request( &self, cx: &mut Cx, request: EvalRequest, ) -> Result<ModelResponse>
Executes one non-streaming inference request with its full eval envelope.
Implementations that need the caller’s capability ceiling can override this method. The default keeps existing model-only runners compatible.
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 infer_stream_request(
&self,
cx: &mut Cx,
request: EvalRequest,
sink: &mut dyn ModelEventSink,
) -> Result<ModelResponse>
fn infer_stream_request( &self, cx: &mut Cx, request: EvalRequest, sink: &mut dyn ModelEventSink, ) -> Result<ModelResponse>
Executes one streaming inference request with its full eval envelope.
The default preserves existing streaming behavior after decoding the model request from the envelope.
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".