Skip to main content

Engine

Trait Engine 

Source
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§

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,

Load model weights and prepare runtime state.

Source

fn infer( &self, request: &InferenceRequest, ) -> Result<BinaryTensorPacket, EngineError>

Run a single inference request and return the output tensor.

Source

fn infer_stream(&self, request: &InferenceRequest) -> EngineStream

Run a streaming inference request.

Source

fn unload(&mut self)

Release any held resources.

Source

fn metrics(&self) -> EngineMetrics

Report the latest metrics snapshot.

Source

fn health_check(&self) -> Result<(), EngineError>

Check if the model is healthy.

Provided Methods§

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,

Run a single inference request asynchronously.

Source

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,

Run a batch of inference requests asynchronously.

Source

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,

Warm up the model runtime before serving requests.

Source

fn model_info(&self) -> Option<EngineModelInfo>

Report model metadata when available.

Trait Implementations§

Source§

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,

Load model weights and prepare runtime state.
Source§

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,

Run a single inference request asynchronously.
Source§

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,

Run a batch of inference requests asynchronously.
Source§

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>

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,

Warm up the model runtime before serving requests.
Source§

fn unload(&mut self)

Release any held resources.
Source§

fn metrics(&self) -> EngineMetrics

Report the latest metrics snapshot.
Source§

fn model_info(&self) -> Option<EngineModelInfo>

Report model metadata when available.
Source§

fn health_check(&self) -> Result<(), EngineError>

Check if the model is healthy.

Implementations on Foreign Types§

Source§

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,

Source§

fn infer( &self, request: &InferenceRequest, ) -> Result<BinaryTensorPacket, EngineError>

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,

Source§

fn infer_batch( &self, requests: &[InferenceRequest], ) -> Result<Vec<BinaryTensorPacket>, EngineError>

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,

Source§

fn infer_stream(&self, request: &InferenceRequest) -> EngineStream

Source§

fn infer_with_cancellation( &self, request: &InferenceRequest, cancellation: &CancellationToken, ) -> Result<BinaryTensorPacket, EngineError>

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,

Source§

fn unload(&mut self)

Source§

fn metrics(&self) -> EngineMetrics

Source§

fn model_info(&self) -> Option<EngineModelInfo>

Source§

fn health_check(&self) -> Result<(), EngineError>

Implementors§