1#[cfg(target_os = "none")]
7#[macro_export]
8macro_rules! print {
9 ($($arg:tt)*) => {{
10 $crate::console::_print(::core::format_args!($($arg)*));
11 }};
12}
13
14#[cfg(target_os = "none")]
20#[macro_export]
21macro_rules! println {
22 () => {
23 $crate::print!("\n")
24 };
25 ($($arg:tt)*) => {{
26 $crate::console::_print(::core::format_args!("{}\n", format_args!($($arg)*)));
27 }};
28}
29
30#[cfg(target_os = "none")]
32#[macro_export]
33macro_rules! panic_println {
34 () => {{
35 $crate::console::_panic_print(::core::format_args!("\n"));
36 }};
37 ($($arg:tt)*) => {{
38 $crate::console::_panic_print(::core::format_args!("{}\n", format_args!($($arg)*)));
39 }};
40}
41
42#[cfg(not(target_os = "none"))]
43#[macro_export]
44macro_rules! panic_println {
45 ($($arg:tt)*) => {
46 println!($($arg)*);
47 };
48}
49
50#[cfg(target_os = "none")]
54#[macro_export]
55macro_rules! dbg {
56 () => {
61 $crate::println!("[{}:{}]", ::core::file!(), ::core::line!())
62 };
63 ($val:expr $(,)?) => {
64 match $val {
67 tmp => {
68 $crate::println!("[{}:{}] {} = {:#?}",
69 ::core::file!(), ::core::line!(), ::core::stringify!($val), &tmp);
70 tmp
71 }
72 }
73 };
74 ($($val:expr),+ $(,)?) => {
75 ($($crate::dbg!($val)),+,)
76 };
77}
78
79#[allow(unused_macros)]
85macro_rules! hermit_var {
86 ($name:expr) => {{
87 use alloc::borrow::Cow;
88
89 match crate::env::var($name) {
90 Some(val) => Some(Cow::from(val)),
91 None => option_env!($name).map(Cow::Borrowed),
92 }
93 }};
94}
95
96#[allow(unused_macros)]
100macro_rules! hermit_var_or {
101 ($name:expr, $default:expr) => {
102 hermit_var!($name).as_deref().unwrap_or($default)
103 };
104}