cror / src /lib.rs
xcolorday's picture
Upload 442 files
6b356c4 verified
Raw
History Blame Contribute Delete
2.22 kB
#[macro_export]
#[doc(hidden)]
macro_rules! __unwrap {
($expr:expr) => {{
#[cfg(debug_assertions)]
#[allow(unused_unsafe)]
unsafe {
$expr.unwrap()
}
#[cfg(not(debug_assertions))]
unsafe {
$expr.unwrap_unchecked()
}
}};
}
#[macro_export]
#[doc(hidden)]
macro_rules! __unwrap_panic {
($result:expr) => {
match $result {
::core::result::Result::Ok(t) => t,
::core::result::Result::Err(e) => $crate::__panic(&e),
}
};
}
#[inline(never)]
#[cold]
#[doc(hidden)]
pub fn __panic(error: &dyn ::core::fmt::Display) -> ! { ::core::panic!("{error}") }
#[macro_export]
#[doc(hidden)]
macro_rules! __unreachable {
() => {{
#[cfg(debug_assertions)]
{
unreachable!()
}
#[cfg(not(debug_assertions))]
unsafe {
::core::hint::unreachable_unchecked()
}
}};
}
#[macro_export]
#[doc(hidden)]
macro_rules! __cold_path {
() => {
::core::hint::cold_path()
};
}
pub const LF: &[u8] = b"\n";
#[macro_export]
#[doc(hidden)]
macro_rules! __print {
($expr:expr) => {
$crate::_print($expr.as_bytes())
};
}
#[macro_export]
#[doc(hidden)]
macro_rules! __println {
() => {
$crate::_print($crate::LF)
};
($expr:expr) => {
$crate::_print($expr.as_bytes());
$crate::_print($crate::LF);
};
}
#[macro_export]
#[doc(hidden)]
macro_rules! __eprint {
($expr:expr) => {
$crate::_eprint($expr.as_bytes())
};
}
#[macro_export]
#[doc(hidden)]
macro_rules! __eprintln {
() => {
$crate::_eprint($crate::LF)
};
($expr:expr) => {
$crate::_eprint($expr.as_bytes());
$crate::_eprint($crate::LF);
};
}
fn print_to<T>(bytes: &'_ [u8], global_s: fn() -> T, label: &str)
where
T: std::io::Write,
{
if let Err(e) = global_s().write_all(bytes) {
panic!("failed printing to {label}: {e}");
}
}
#[doc(hidden)]
#[inline]
pub fn _print(bytes: &'_ [u8]) { print_to(bytes, std::io::stdout, "stdout"); }
#[doc(hidden)]
#[inline]
pub fn _eprint(bytes: &'_ [u8]) { print_to(bytes, std::io::stderr, "stderr"); }