#[macro_export]
macro_rules! json_syntax {
(
$($tokens:tt)*
) => {
$crate::__process_json_syntax! { $($tokens)* }
};
}
#[macro_export]
macro_rules! __process_json_syntax {
(
$($processed:tt)*
) => {
$($processed)*
};
}
#[macro_export]
macro_rules! json_object {
({ $($key:expr => $value:expr),* $(,)? }) => {
$crate::collections::hashbrown::hash_map_fn!{ $($key => $value),* }
};
}
#[macro_export]
macro_rules! enable_json_syntax {
($($tokens:tt)*) => {
$crate::json_syntax! { $($tokens)* }
};
}
#[macro_export]
macro_rules! json_builder {
(
$obj:expr, additional_params, { $($key:expr => $value:expr),* $(,)? }
) => {
$obj.additional_params($crate::collections::hashbrown::hash_map_fn!{ $($key => $value),* })
};
(
$obj:expr, metadata, { $($key:expr => $value:expr),* $(,)? }
) => {
$obj.metadata($crate::collections::hashbrown::hash_map_fn!{ $($key => $value),* })
};
(
Tool::new, { $($key:expr => $value:expr),* $(,)? }
) => {
Tool::new($crate::collections::hashbrown::hash_map_fn!{ $($key => $value),* })
};
(
Tool::<$type:ty>::new, { $($key:expr => $value:expr),* $(,)? }
) => {
Tool::<$type>::new($crate::collections::hashbrown::hash_map_fn!{ $($key => $value),* })
};
}