html terminal
Diffstat (limited to 'src/logging.rs')
-rw-r--r--src/logging.rs45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/logging.rs b/src/logging.rs
new file mode 100644
index 0000000..c21a80b
--- /dev/null
+++ b/src/logging.rs
@@ -0,0 +1,45 @@
+#[macro_export]
+macro_rules! define_print {
+ ($name:ident, $start:expr) => {
+ paste::paste!(
+ #[allow(unused_macros)]
+ macro_rules! $name {
+ () => {{
+ #[cfg(debug_assertions)]
+ println!($start)
+ }};
+ ($fmt:literal) => {{
+ #[cfg(debug_assertions)]
+ println!(concat!($start, " {}"), format!($fmt))
+ }};
+ }
+ );
+ };
+ ($name:ident, $start:expr, $b:expr) => {
+ paste::paste!(
+ #[allow(unused_macros)]
+ macro_rules! $name {
+ () => {{
+ #[cfg(debug_assertions)]
+ println!($start);
+ $b
+ }};
+ ($fmt:literal) => {{
+ #[cfg(debug_assertions)]
+ println!(concat!($start, " {}"), format!($fmt));
+ $b
+ }};
+ }
+ );
+ };
+ ($prefix:expr) => {
+ define_print!(cont, concat!($prefix, " ", ">>"), continue);
+ define_print!(fail, concat!($prefix, " ", "!!"), break);
+ define_print!(flush, concat!($prefix, " ", "<<"));
+ define_print!(noinput, concat!($prefix, " ", "!<"));
+ define_print!(nooutput, concat!($prefix, " ", "!>"));
+ define_print!(nextiter, concat!($prefix, " ", "--"));
+ define_print!(input, concat!($prefix, " ", "<"));
+ define_print!(output, concat!($prefix, " ", ">"));
+ };
+}