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)*) => { ... }; }
use expression_engine::create_context; use expression_engine::Value; let a = create_context!("d" => 3.5, "c" => Arc::new(|params| { Ok(Value::from(3)) }));