1pub use std::io::Write;
2
3macro_rules! create_std_macros {
4 ($src:expr, $name:ident, $nameln:ident) => {
5 #[macro_export]
6 macro_rules! $name {
7 ($str:expr) => {
8 $src.write_all($str.as_bytes()).unwrap();
9 $src.flush().unwrap()
10 }
11 }
12 #[macro_export]
13 macro_rules! $nameln {
14 ($str:expr) => {
15 let mut s = String::with_capacity($str.len() + 1);
16 s.push_str($str);
17 s.push('\n');
18 $name!(s);
19 }
20 }
21 }
22}
23
24create_std_macros!(std::io::stdout(), stdout, stdoutln);
25create_std_macros!(std::io::stderr(), stderr, stderrln);
26
27#[test]
28fn it_works() {
29 stdout!("Hello ");
30 stdoutln!("World");
31 stderrln!("ERROR! (not really though)");
32}