pub trait Engine: Send + Sync {
// Required methods
fn load<'life0, 'life1, 'async_trait>(
&'life0 mut self,
model_path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<(), EngineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn infer(
&self,
request: &InferenceRequest,
) -> Result<BinaryTensorPacket, EngineError>;
fn infer_stream(&self, request: &InferenceRequest) -> EngineStream;
fn unload(&mut self);
fn metrics(&self) -> EngineMetrics;
fn health_check(&self) -> Result<(), EngineError>;
// Provided methods
fn infer_async<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 InferenceRequest,
) -> Pin<Box<dyn Future<Output = Result<BinaryTensorPacket, EngineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn infer_batch(
&self,
requests: &[InferenceRequest],
) -> Result<Vec<BinaryTensorPacket>, EngineError> { ... }
fn infer_batch_async<'life0, 'life1, 'async_trait>(
&'life0 self,
requests: &'life1 [InferenceRequest],
) -> Pin<Box<dyn Future<Output = Result<Vec<BinaryTensorPacket>, EngineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn infer_with_cancellation(
&self,
request: &InferenceRequest,
cancellation: &CancellationToken,
) -> Result<BinaryTensorPacket, EngineError> { ... }
fn warmup<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), EngineError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn model_info(&self) -> Option<EngineModelInfo> { ... }
}Required Methods§
Sourcefn load<'life0, 'life1, 'async_trait>(
&'life0 mut self,
model_path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<(), EngineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 mut self,
model_path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<(), EngineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Load model weights and prepare runtime state.
Sourcefn infer(
&self,
request: &InferenceRequest,
) -> Result<BinaryTensorPacket, EngineError>
fn infer( &self, request: &InferenceRequest, ) -> Result<BinaryTensorPacket, EngineError>
Run a single inference request and return the output tensor.
Sourcefn infer_stream(&self, request: &InferenceRequest) -> EngineStream
fn infer_stream(&self, request: &InferenceRequest) -> EngineStream
Run a streaming inference request.
Sourcefn metrics(&self) -> EngineMetrics
fn metrics(&self) -> EngineMetrics
Report the latest metrics snapshot.
Sourcefn health_check(&self) -> Result<(), EngineError>
fn health_check(&self) -> Result<(), EngineError>
Check if the model is healthy.
Provided Methods§
Sourcefn infer_async<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 InferenceRequest,
) -> Pin<Box<dyn Future<Output = Result<BinaryTensorPacket, EngineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn infer_async<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 InferenceRequest,
) -> Pin<Box<dyn Future<Output = Result<BinaryTensorPacket, EngineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Run a single inference request asynchronously.
Sourcefn infer_batch(
&self,
requests: &[InferenceRequest],
) -> Result<Vec<BinaryTensorPacket>, EngineError>
fn infer_batch( &self, requests: &[InferenceRequest], ) -> Result<Vec<BinaryTensorPacket>, EngineError>
Run a batch of inference requests.
Sourcefn infer_batch_async<'life0, 'life1, 'async_trait>(
&'life0 self,
requests: &'life1 [InferenceRequest],
) -> Pin<Box<dyn Future<Output = Result<Vec<BinaryTensorPacket>, EngineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn infer_batch_async<'life0, 'life1, 'async_trait>(
&'life0 self,
requests: &'life1 [InferenceRequest],
) -> Pin<Box<dyn Future<Output = Result<Vec<BinaryTensorPacket>, EngineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Run a batch of inference requests asynchronously.
Sourcefn infer_with_cancellation(
&self,
request: &InferenceRequest,
cancellation: &CancellationToken,
) -> Result<BinaryTensorPacket, EngineError>
fn infer_with_cancellation( &self, request: &InferenceRequest, cancellation: &CancellationToken, ) -> Result<BinaryTensorPacket, EngineError>
Run inference with cancellation support.
Sourcefn warmup<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), EngineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn warmup<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), EngineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Warm up the model runtime before serving requests.
Sourcefn model_info(&self) -> Option<EngineModelInfo>
fn model_info(&self) -> Option<EngineModelInfo>
Report model metadata when available.
Trait Implementations§
Source§impl Engine for Box<dyn Engine>
impl Engine for Box<dyn Engine>
Source§fn load<'life0, 'life1, 'async_trait>(
&'life0 mut self,
model_path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<(), EngineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load<'life0, 'life1, 'async_trait>(
&'life0 mut self,
model_path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<(), EngineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Load model weights and prepare runtime state.
Source§fn infer(
&self,
request: &InferenceRequest,
) -> Result<BinaryTensorPacket, EngineError>
fn infer( &self, request: &InferenceRequest, ) -> Result<BinaryTensorPacket, EngineError>
Run a single inference request and return the output tensor.
Source§fn infer_async<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 InferenceRequest,
) -> Pin<Box<dyn Future<Output = Result<BinaryTensorPacket, EngineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn infer_async<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 InferenceRequest,
) -> Pin<Box<dyn Future<Output = Result<BinaryTensorPacket, EngineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Run a single inference request asynchronously.
Source§fn infer_batch(
&self,
requests: &[InferenceRequest],
) -> Result<Vec<BinaryTensorPacket>, EngineError>
fn infer_batch( &self, requests: &[InferenceRequest], ) -> Result<Vec<BinaryTensorPacket>, EngineError>
Run a batch of inference requests.
Source§fn infer_batch_async<'life0, 'life1, 'async_trait>(
&'life0 self,
requests: &'life1 [InferenceRequest],
) -> Pin<Box<dyn Future<Output = Result<Vec<BinaryTensorPacket>, EngineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn infer_batch_async<'life0, 'life1, 'async_trait>(
&'life0 self,
requests: &'life1 [InferenceRequest],
) -> Pin<Box<dyn Future<Output = Result<Vec<BinaryTensorPacket>, EngineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Run a batch of inference requests asynchronously.
Source§fn infer_stream(&self, request: &InferenceRequest) -> EngineStream
fn infer_stream(&self, request: &InferenceRequest) -> EngineStream
Run a streaming inference request.
Source§fn infer_with_cancellation(
&self,
request: &InferenceRequest,
cancellation: &CancellationToken,
) -> Result<BinaryTensorPacket, EngineError>
fn infer_with_cancellation( &self, request: &InferenceRequest, cancellation: &CancellationToken, ) -> Result<BinaryTensorPacket, EngineError>
Run inference with cancellation support.
Source§fn warmup<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), EngineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn warmup<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), EngineError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Warm up the model runtime before serving requests.
Source§fn metrics(&self) -> EngineMetrics
fn metrics(&self) -> EngineMetrics
Report the latest metrics snapshot.
Source§fn model_info(&self) -> Option<EngineModelInfo>
fn model_info(&self) -> Option<EngineModelInfo>
Report model metadata when available.
Source§fn health_check(&self) -> Result<(), EngineError>
fn health_check(&self) -> Result<(), EngineError>
Check if the model is healthy.