use crate::error::RuntimeSdkError;
use crate::types::{
ExecRequest, ExecResult, RuntimeHealthStatus, RuntimeInitializeParams, RuntimeInitializeResult,
};
pub trait Runtime: Send + 'static {
fn start(
&mut self,
params: RuntimeInitializeParams,
) -> impl std::future::Future<Output = Result<RuntimeInitializeResult, RuntimeSdkError>> + Send;
fn exec(
&self,
request: ExecRequest,
) -> impl std::future::Future<Output = Result<ExecResult, RuntimeSdkError>> + Send;
fn health(&self) -> impl std::future::Future<Output = RuntimeHealthStatus> + Send;
fn stop(&mut self) -> impl std::future::Future<Output = Result<(), RuntimeSdkError>> + Send;
fn kill(
&self,
process_id: &str,
) -> impl std::future::Future<Output = Result<(), RuntimeSdkError>> + Send;
}