use crate::prelude::*;
#[cfg(feature = "api-poem")]
pub trait NorthApiTrait: PoemOpenApi + Sized + Clone {}
pub trait NorthServiceBuilderTrait<T> {
#[cfg(feature = "api-poem")]
fn handler<E>(self, path: impl AsRef<str>, ep: E) -> Self
where
E: IntoEndpoint,
E::Endpoint: 'static;
fn version(self, version: &str) -> Self;
fn name(self, name: &str) -> Self;
fn path_prefix(self, path: &str) -> Self;
fn keep_alive(self, timeout: u32) -> Self;
fn read_timeout(self, timeout: u32) -> Self;
fn write_timeout(self, timeout: u32) -> Self;
fn address(self, address: &str) -> Self;
fn port(self, port: u16) -> Self;
fn wrapper(self) -> Self;
#[cfg(feature = "api-poem")]
fn custom_http_server(self, app: Route) -> Self;
#[cfg(feature = "api-poem")]
fn controller(self, api: T) -> Self;
fn with_swagger(self, enable_swagger: bool) -> Self;
#[cfg(feature = "db-arango")]
fn with_database(self, db_connection: Arc<DatabaseConnection>) -> Self;
fn with_auto_acme(self, enable_acme: bool) -> Self;
fn service_registry(self, registry: BoxedServiceRegistry) -> Self;
#[cfg(feature = "api-poem")]
fn with_data<S: NorthStateData + Send + Sync + 'static>(self, data: S) -> Self;
fn graceful_shutdown(self) -> Self;
fn build(&mut self) -> NorthService;
}