macro_rules! create_context {
    (($ctx:expr) $k:expr => Arc::new($($v:tt)*), $($tt:tt)*) => { ... };
    (($ctx:expr) $k:expr => $v:expr, $($tt:tt)*) => { ... };
    (($ctx:expr) $k:expr => Arc::new($($v:tt)*)) => { ... };
    (($ctx:expr) $k:expr => $v:expr) => { ... };
    (($ctx:expr)) => { ... };
    ($($tt:tt)*) => { ... };
}
Expand description
 use expression_engine::create_context;
 use expression_engine::Value;
 let a = create_context!("d" => 3.5, "c" => Arc::new(|params| {
    Ok(Value::from(3))
 }));