use crate::health::HealthStatus;
use anyhow::Result;
use async_trait::async_trait;
#[async_trait]
pub trait NodeRunner: Send + Sync {
fn name(&self) -> &str;
async fn run(&mut self) -> Result<()>;
async fn health_check(&self) -> HealthStatus {
HealthStatus::Healthy
}
async fn shutdown(&mut self) -> Result<()> {
Ok(())
}
}