mango-core 0.2.1

Core Libraries for the mango operationg system.
Documentation
#[allow(missing_docs)]
pub fn _print_to_impl(args: core::fmt::Arguments<'_>) -> core::fmt::Result
{
  use core::fmt::Write;
  crate::STDOUT.lock().write_fmt(args)
}

/// Print to a device
#[macro_export]
macro_rules! print_to {
  ($out:expr, $($arg:tt)*) => ($out.write_fmt(format_args!($($arg)*)).expect("Printing to out failed"));
}

/// Print to a device and add a return carriage.
#[macro_export]
macro_rules! println_to {
  ($out:expr) => ($crate::print_to!($out, "\n"));
  ($out:expr, $($arg:tt)*) => ($crate::print_to!($out, "{}\n", format_args!($($arg)*)));
}

/// Print to stdout
#[macro_export]
macro_rules! print {
  ($($arg:tt)*) => ($crate::print::_print_to_impl(format_args!($($arg)*)).expect("Printing to out failed"));
}

/// Print to stdout and add a return carriage.
#[macro_export]
macro_rules! println {
  () => (crate::println_to!($crate::STDOUT.lock()));
  ($($arg:tt)*) => ($crate::print::_print_to_impl(format_args!("{}\n", format_args!($($arg)*))).expect("Printing to out failed"));
}