use crate::role::context::sidecar::SidecarContext;
use crate::role::result::sidecar::SidecarResult;
use std::future::Future;
pub trait SidecarRole: Send + 'static {
fn init<'a>(
&'a mut self,
ctx: &'a SidecarContext,
) -> impl Future<Output = SidecarResult<()>> + Send + 'a {
async move {
let _ = ctx;
Ok(())
}
}
fn run<'a>(
&'a mut self,
ctx: &'a SidecarContext,
) -> impl Future<Output = SidecarResult<()>> + Send + 'a;
fn shutdown<'a>(
&'a mut self,
ctx: &'a SidecarContext,
) -> impl Future<Output = SidecarResult<()>> + Send + 'a {
async move {
let _ = ctx;
Ok(())
}
}
}