#[doc = crate::_tags!(code)]
#[doc = crate::_doc_location!("sys/mem")]
#[macro_export]
#[cfg_attr(cargo_primary_package, doc(hidden))]
macro_rules! cswap {
( // defaults to `tmp`
$a:expr, $b:expr) => {{ $crate::cswap![tmp: $a, $b]; }};
(xor // deprecated(since = "0.23.0", note = "Use `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;