macro_rules! with_shared_docs {(
$(#[$before_clarification:meta])*
;clarification
$(#[$before_syntax:meta])*
;syntax
$(#[$after_syntax:meta])*
;error_message
$(#[$after_error_message:meta])*
;limitations
$item:item
) => (
$(#[$before_clarification])*
$(#[$before_syntax])*
$(#[$after_syntax])*
$(#[$after_error_message])*
$item
)}
with_shared_docs! {
;clarification
;syntax
;error_message
;limitations
#[cfg_attr(feature = "__docsrs", doc(cfg(feature = "assertc")))]
#[macro_export]
macro_rules! assertc {
($($parameters:tt)*) => (
$crate::__assertc_inner!{
__formatc_if_impl
($($parameters)*)
($($parameters)*)
}
);
}
}
macro_rules! assert_eq_docs {
(
$(#[$documentation:meta])*
;documentation
$item:item
) => (
with_shared_docs! {
$(#[$documentation])*
;clarification
;syntax
;error_message
;limitations
$item
}
)
}
assert_eq_docs! {
;documentation
#[cfg_attr(feature = "derive", doc = "```compile_fail")]
#[cfg_attr(not(feature = "derive"), doc = "```ignore")]
#[cfg_attr(feature = "__docsrs", doc(cfg(feature = "assertc")))]
#[macro_export]
macro_rules! assertc_eq {
($($parameters:tt)*) => (
$crate::__assertc_equality_inner!{
($($parameters)*)
($($parameters)*)
( == )
("==")
}
);
}
}
assert_eq_docs! {
;documentation
#[cfg_attr(feature = "derive", doc = "```compile_fail")]
#[cfg_attr(not(feature = "derive"), doc = "```ignore")]
#[cfg_attr(feature = "__docsrs", doc(cfg(feature = "assertc")))]
#[macro_export]
macro_rules! assertc_ne {
($($parameters:tt)*) => (
$crate::__assertc_equality_inner!{
($($parameters)*)
($($parameters)*)
( != )
("!=")
}
);
}
}
#[doc(hidden)]
#[macro_export]
macro_rules! __assertc_equality_inner {
(
($($parameters:tt)*)
(
$left:expr,
$right:expr
$(, $fmt_literal:expr $(,$fmt_arg:expr)*)? $(,)?
)
($($op:tt)*)
($op_str:expr)
)=>{
const _: () = {
use $crate::__cf_osRcTFl4A;
use $crate::pmr::respan_to as __cf_respan_to;
const LEFT: $crate::pmr::bool = {
use $crate::coerce_to_fmt as __cf_coerce_to_fmt;
match [&$left, &$right] {
__cf_respan_to!(($left) [left, right]) =>
__cf_respan_to!(($left) __cf_coerce_to_fmt!(left).const_eq(right)),
}
};
const RIGHT: $crate::pmr::bool = true;
$crate::__assertc_common!{
__formatc_if_impl
($($parameters)*)
(LEFT $($op)* RIGHT)
(
concat!(
"\nassertion failed: `(left ",
$op_str,
" right)`\n",
" left: `{left_NHPMWYD3NJA:#?}`\n\
right: `{right_NHPMWYD3NJA:#?}`",
$("\n", $fmt_literal, "\n")?
),
$($($fmt_arg,)*)?
left_NHPMWYD3NJA = $left,
right_NHPMWYD3NJA = $right
)
}
};
}
}