use crate::error::ServiceSdkError;
use crate::types::{ServiceHealthStatus, ServiceInitializeParams, ServiceInitializeResult};
pub trait Service: Send + 'static {
fn on_initialize(
&mut self,
params: ServiceInitializeParams,
) -> impl std::future::Future<Output = Result<ServiceInitializeResult, ServiceSdkError>> + Send;
fn on_health(&self) -> impl std::future::Future<Output = ServiceHealthStatus> + Send;
fn on_shutdown(
&mut self,
) -> impl std::future::Future<Output = Result<(), ServiceSdkError>> + Send;
fn handle_unknown(
&mut self,
_method: &str,
_params: serde_json::Value,
) -> Option<serde_json::Value> {
None
}
}