blob: 343bd1fee1afa8851e6bdea9b3acf2981683ddbe [file]
// Copyright 2022 CeresDB Project Authors. Licensed under Apache-2.0.
//! Contains all needed macros
/// Define result for given Error type
#[macro_export]
macro_rules! define_result {
($t:ty) => {
pub type Result<T> = std::result::Result<T, $t>;
};
}
#[macro_export]
macro_rules! hash_map(
{ $($key:expr => $value:expr),+ } => {
{
let mut m = ::std::collections::HashMap::new();
$(
m.insert($key, $value);
)+
m
}
};
);
#[cfg(test)]
mod tests {
#[test]
fn test_define_result() {
define_result!(i32);
fn return_i32_error() -> Result<()> {
Err(18)
}
assert_eq!(Err(18), return_i32_error());
}
#[test]
fn test_hash_map() {
let m = hash_map! { 1 => "hello", 2 => "world" };
assert_eq!(2, m.len());
assert_eq!("hello", *m.get(&1).unwrap());
assert_eq!("world", *m.get(&2).unwrap());
}
}