#[doc = crate::_tags!(code)]
#[doc = crate::_doc_meta!{
location("sys/mem/bound", macro cswap),
}]
#[macro_export]
#[cfg_attr(cargo_primary_package, doc(hidden))]
macro_rules! cswap· {
( $a:expr, $b:expr) => {{ $crate::cswap![tmp: $a, $b]; }};
(xor $a:expr, $b:expr) => {{ $crate::cswap![xor: $a, $b]; }};
(tmp:
$a:expr, $b:expr) => {{ let tmp = $a; $a = $b; $b = tmp; }};
(mut:
$a:expr, $b:expr) => {{ ::core::mem::swap(&mut $a, &mut $b); }}; (xor:
$a:expr, $b:expr) => {{ if $a != $b { $a ^= $b; $b ^= $a; $a ^= $b; } }};
(xor_unchecked:
$a:expr, $b:expr) => {{ $a ^= $b; $b ^= $a; $a ^= $b; }};
}
#[doc(inline)]
pub use cswap· as cswap;