#[macro_export]
macro_rules! with_annotations {
() => ( $crate::normal::Variant::Nothing<$crate::annotate::WithAnnotations> );
( $value:expr $(,)? ) => ( ($value) as $crate::normal::Variant<$crate::annotate::WithAnnotations> );
}
#[macro_export]
macro_rules! without_annotations {
() => ( $crate::normal::Variant::Nothing<$crate::annotate::WithoutAnnotations> );
( $value:expr $(,)? ) => ( ($value) as $crate::normal::Variant<$crate::annotate::WithoutAnnotations> );
}
#[macro_export]
macro_rules! normal {
() => {
$crate::normal::Variant::Nothing
};
( $value:expr $(,)? ) => {
$crate::normal::Variant::from($value)
};
}
#[macro_export]
macro_rules! normal_list {
() => (
$crate::normal::Variant::List(
$crate::normal::List::default()
)
);
( $( $value:expr ),+ $(,)? ) => (
$crate::normal::Variant::List(
$crate::normal::List::from(
vec![ $( $crate::normal!( $value ) ),+ ]
)
)
);
}
#[macro_export]
macro_rules! normal_map {
() => (
$crate::normal::Variant::Map(
$crate::normal::Map::default()
)
);
( $( ( $key:expr, $value:expr ) ),+ $(,)? ) => (
$crate::normal::Variant::Map(
$crate::normal::Map::from(
[ $( ( $crate::normal!( $key ), $crate::normal!( $value ) ) ),+ ]
)
)
);
}
#[macro_export]
macro_rules! normal_vec {
( $( $value:expr ),* $(,)? ) => (
vec![ $( $crate::normal!( $value ) ),* ]
);
}
#[allow(unused_imports)]
pub use {normal, normal_list, normal_map, normal_vec, with_annotations, without_annotations};