diff --git a/lib/u_lib/src/client/network.rs b/lib/u_lib/src/client/network.rs index ffd62df..f6ce57c 100644 --- a/lib/u_lib/src/client/network.rs +++ b/lib/u_lib/src/client/network.rs @@ -1,3 +1,5 @@ +#[allow(non_upper_case_globals)] + use crate::{ MASTER_SERVER, MASTER_PORT, @@ -16,6 +18,7 @@ use std::{ str::FromStr }; +pub struct Paths; #[macro_export] macro_rules! epilogue { @@ -31,23 +34,16 @@ macro_rules! epilogue { }; } -// build_handler![path = new, method = "post", param = ClientInfo, result = RawMsg] -// new syntax: build_handler!(POST new(ClientInfo) -> RawMsg) // param and result must impl ToMsg #[macro_export] macro_rules! build_handler { - ( - path = $path:tt, - method = $method:literal, - param = $($param:ty)?, - result = $result:ty - ) => { + ( $method:tt $path:tt($($param:ty)?) -> $result:ty ) => { impl ClientHandler { pub async fn $path(&self $(, param: &$param)?) -> UResult<$result> { - let builder = match $method { - "post" => ClientHandler::build_post, - "get" => ClientHandler::build_get, - _ => panic!("Method '{}' is not allowed", $method) + let builder = match stringify!($method) { + "POST" => ClientHandler::build_post, + "GET" => ClientHandler::build_get, + _ => panic!("Method '{}' is not allowed", stringify!($method)) }; let mut request = builder(self, stringify!($path)); request = request @@ -61,39 +57,6 @@ macro_rules! build_handler { pub const $path: &'static str = stringify!($path); } }; - - ( - path = $path:tt, - method = $method:literal - ) => ( - build_handler!(path = $path, method = $method, param = , result = ()); - ); - - ( - path = $path:tt, - method = $method:literal, - param = $param:ty - ) => ( - build_handler!(path = $path, method = $method, param = $param, result = ()); - ); - - ( - path = $path:tt, - method = $method:literal, - result = $result:ty - ) => ( - build_handler!(path = $path, method = $method, param = , result = $result); - ); -} - -pub struct Paths; - -impl Paths { - pub const LIST: &'static str = "list"; - pub const NEW: &'static str = "new"; - //pub const DEL: &'static str = "del"; - pub const JOB_REQ: &'static str = "job_req"; - pub const JOB_ANS: &'static str = "job_ans"; } @@ -140,7 +103,6 @@ impl ClientHandler { } } - -build_handler!(path = init, method = "post", param = ClientInfo, result = RawMsg); -build_handler!(path = ls, method = "get", result = Vec); -build_handler!(path = del, method = "post"); +build_handler!(POST init(ClientInfo) -> RawMsg); +build_handler!(GET ls() -> Vec); +build_handler!(POST del() -> ());