stdmacros/
lib.rs

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}