diff options
| author | omagdy <omar.professional8777@gmail.com> | 2025-07-17 03:44:03 +0300 |
|---|---|---|
| committer | omagdy <omar.professional8777@gmail.com> | 2025-07-17 03:44:03 +0300 |
| commit | c880c7ad3eba9546ce95bc268218c66a128d319f (patch) | |
| tree | 95bfaf60d0123ee542b15b588b4b6c322cd32b28 /src/resp_commands.rs | |
| parent | 6bdbdf8f86cfe3f2301ac7c1ff029f2b8e2a353c (diff) | |
| download | redis-rust-c880c7ad3eba9546ce95bc268218c66a128d319f.tar.xz redis-rust-c880c7ad3eba9546ce95bc268218c66a128d319f.zip | |
refactor: moved macros to their own file
Diffstat (limited to 'src/resp_commands.rs')
| -rw-r--r-- | src/resp_commands.rs | 92 |
1 files changed, 1 insertions, 91 deletions
diff --git a/src/resp_commands.rs b/src/resp_commands.rs index 52167cc..2663cc5 100644 --- a/src/resp_commands.rs +++ b/src/resp_commands.rs @@ -1,97 +1,7 @@ -use crate::CacheEntry; -use crate::{resp_parser::*, SharedCache}; +use crate::{macros::*, resp_parser::*, CacheEntry, SharedCache}; use std::collections::{HashMap, HashSet}; use std::time::{Duration, SystemTime, UNIX_EPOCH}; -#[macro_export] -macro_rules! resp { - // Null: resp!(null) - (null) => { - $crate::RespType::Null().to_resp_bytes() - }; - - // Simple String: resp!("PONG") or resp!(simple "PONG") - (simple $s:expr) => { - $crate::RespType::SimpleString($s.to_string()).to_resp_bytes() - }; - ($s:expr) => { - $crate::RespType::SimpleString($s.to_string()).to_resp_bytes() - }; - - // Simple Error: resp!(error "ERR message") - (error $s:expr) => { - $crate::RespType::SimpleError($s.to_string()).to_resp_bytes() - }; - - // Integer: resp!(int 123) - (int $i:expr) => { - $crate::RespType::Integer($i).to_resp_bytes() - }; - - // Bulk String: resp!(bulk "hello") or resp!(bulk vec![104, 101, 108, 108, 111]) - (bulk $s:expr) => { - $crate::RespType::BulkString($s.into()).to_resp_bytes() - }; - - // Array: resp!(array [resp!("one"), resp!(int 2)]) - (array [$($elem:expr),*]) => { - $crate::RespType::Array(vec![$($elem),*]).to_resp_bytes() - }; - - // Boolean: resp!(bool true) - (bool $b:expr) => { - $crate::RespType::Boolean($b).to_resp_bytes() - }; - - // Double: resp!(double 3.14) - (double $d:expr) => { - $crate::RespType::Doubles($d).to_resp_bytes() - }; - - // Big Number: resp!(bignumber "123456789") - (bignumber $n:expr) => { - $crate::RespType::BigNumbers($n.to_string()).to_resp_bytes() - }; - - // Bulk Error: resp!(bulkerror [resp!("err1"), resp!("err2")]) - (bulkerror [$($elem:expr),*]) => { - $crate::RespType::BulkErrors(vec![$($elem),*]).to_resp_bytes() - }; - - // Verbatim String: resp!(verbatim [resp!("txt"), resp!("example")]) - (verbatim [$($elem:expr),*]) => { - $crate::RespType::VerbatimStrings(vec![$($elem),*]).to_resp_bytes() - }; - - // Map: resp!(map {resp!("key") => resp!("value")}) - (map {$($key:expr => $value:expr),*}) => { - $crate::RespType::Maps({ - let mut map = HashMap::new(); - $(map.insert($key, $value);)* - map - }).to_resp_bytes() - }; - - // Attributes: resp!(attributes [resp!("key"), resp!("value")]) - (attributes [$($elem:expr),*]) => { - $crate::RespType::Attributes(vec![$($elem),*]).to_resp_bytes() - }; - - // Set: resp!(set [resp!("one"), resp!("two")]) - (set [$($elem:expr),*]) => { - $crate::RespType::Sets({ - let mut set = HashSet::new(); - $(set.insert($elem);)* - set - }).to_resp_bytes() - }; - - // Push: resp!(push [resp!("event"), resp!("data")]) - (push [$($elem:expr),*]) => { - $crate::RespType::Pushes(vec![$($elem),*]).to_resp_bytes() - }; -} - #[derive(Debug, Clone)] pub enum SetCondition { /// NX - only set if key doesn't exists |
