#[macro_export]
macro_rules! debug_write {
($msg:literal, $writer:expr) => {
#[cfg(feature = "debug_format")]
{
for byte in $msg.as_bytes() {
$writer.write_u8(*byte);
}
}
};
}
#[macro_export]
macro_rules! debug_expect {
($msg:literal, $reader:expr) => {
#[cfg(feature = "debug_format")]
{
for byte in $msg.as_bytes() {
assert!(
*byte == $reader.read_u8().unwrap(),
"Expected {:?}, but did not match.",
$msg
);
}
}
};
}
#[macro_export]
macro_rules! safety_assert {
($($arg:tt)*) => {
#[cfg(all(debug_assertions, feature = "safety_assertions"))]
{
::core::assert!($($arg)*);
}
};
}
#[macro_export]
macro_rules! safety_assert_eq {
($($arg:tt)*) => {
#[cfg(all(debug_assertions, feature = "safety_assertions"))]
{
::core::assert_eq!($($arg)*);
}
};
}