use crate::Result;
pub trait ServiceTrait {
fn mode() -> ServiceMode
where
Self: Sized;
fn new() -> Self
where
Self: Sized;
fn run(&mut self) -> Result<()>;
#[cfg(any(feature = "http1", feature = "http2"))]
fn routes(&self) -> axum::Router {
axum::Router::new()
}
}
#[derive(Debug)]
pub enum ServiceMode {
#[cfg(feature = "console")]
Console,
#[cfg(feature = "schedule")]
Schedule,
#[cfg(any(feature = "http1", feature = "http2"))]
Server,
Unsupported,
}