1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
#[macro_export] macro_rules! run { () => { vial::run!("0.0.0.0:7667") }; ($addr:expr) => {{ let mut router = ::vial::Router::new(); vial_add_to_router(&mut router); vial::run($addr, ::std::sync::Arc::new(::std::sync::Mutex::new(router))) }}; ($($module:ident),+) => {{ let mut router = ::vial::Router::new(); $($module::vial_add_to_router(&mut router);)+ vial::run("0.0.0.0:7667", ::std::sync::Arc::new(::std::sync::Mutex::new(router))) }}; ($addr:expr, $($module:ident),+) => {{ let mut router = ::vial::Router::new(); $($module::vial_add_to_router(&mut router);)+ vial::run($addr, ::std::sync::Arc::new(::std::sync::Mutex::new(router))) }}; } #[macro_export] macro_rules! vial { ( $($method:ident $path:expr => $body:expr;)* ) => { fn vial_check_method() { #![allow(non_snake_case)] fn GET() {} fn POST() {} fn PUT() {} fn DELETE() {} fn UPDATE() {} fn PATCH() {} $($method();)* } pub fn vial_add_to_router(router: &mut ::vial::Router) { $( router.insert(::vial::Method::$method, $path, |req| { use ::vial::Responder; let b: fn(::vial::Request) -> _ = $body; b(req).to_response() }); )* } }; } macro_rules! error { ($msg:expr) => { std::io::Error::new(std::io::ErrorKind::Other, $msg) }; ($fmt:expr, $($args:expr),*) => { error!(format!($fmt, $($args),*)) }; }