| #[cfg(feature = "mesalock_sgx")] |
| use std::prelude::v1::*; |
| |
| use std::io::{self, Write}; |
| |
| pub struct Logger(pub Box<dyn Write>); |
| |
| pub fn stderr() -> Logger { |
| Logger(Box::new(io::stderr())) |
| } |
| |
| #[macro_export] |
| macro_rules! log { |
| ($l:expr) => ($l.as_ref().map(|l| l.borrow_mut().0.write("\n".as_bytes()).is_ok())); |
| ($l:expr, $fmt:expr) => ( |
| $l.as_ref().map(|l| l.borrow_mut().0.write(concat!($fmt, "\n").as_bytes()).is_ok())); |
| ($l:expr, $fmt:expr, $($arg:tt)*) => ( |
| $l.as_ref().map( |
| |l| l.borrow_mut().0.write_fmt(format_args!(concat!($fmt, "\n"), $($arg)*)).is_ok())); |
| } |