#![allow(unused)]
pub mod framework_http;
pub mod structure;
pub mod configurations;
mod builders;
use std::collections::HashMap;
pub use builders::*;
pub use framework_http::*;
pub use structure::*;
pub (crate) static mut ___ROUTERS:Option<HashMap<String,String>> = None;
#[allow(non_snake_case)]
#[macro_export]
macro_rules! DataHolderInitializer {
($broker:ty) => {
pub type _WaterContextDataHolder = $broker;
#[allow(non_snake_case)]
static mut ___CONTROLLERS:Option<Vec<water_http::structure::HttpContextRController<_WaterContextDataHolder>>> = None;
};
}
#[allow(non_snake_case)]
#[macro_export]
macro_rules! RunServer{
($controller:expr)=>{
water_http::RunServer!(
water_http::framework_http::WaterServerConfigurations::default(),
[
$controller
]
);
};
([$($controller:expr),*])=>{
water_http::RunServer!(
water_http::framework_http::WaterServerConfigurations::default(),
[
$($controller),*
]
);
};
(
$configuration:expr
=>
$controllers:expr
) => {
unsafe {
___CONTROLLERS = Some(
$controllers
);
water_http::framework_http::server_runner::start_server::<_WaterContextDataHolder>
(
$configuration,
|| {
___CONTROLLERS.as_mut().unwrap()
}
).await;
}
};
(
$configuration:expr,
[
$($controllers:expr),*
]
) => {
unsafe {
___CONTROLLERS = Some(
vec![
$($controllers),*
]
);
water_http::framework_http::server_runner::start_server::<_WaterContextDataHolder>
(
$configuration,
|| {
___CONTROLLERS.as_mut().unwrap()
}
).await;
}
};
(
$configuration:expr,
$controllers:expr
) =>{
water_http::RunServer!($configuration,[$controllers]);
};
}