use kxio::{kxprintln, print::Printer};
fn greet(printer: &Printer, name: &str) {
kxprintln!(printer, "Hello, {}!", name);
}
fn main() {
let printer = Printer::standard();
kxprintln!(printer, "Macro says: Hello, {}!", "Carol");
greet(&printer, "Carol");
}
#[cfg(test)]
mod test {
use super::*;
use kxio::print::TestPrint;
#[test]
fn test_printer() {
let printer = Printer::test();
let test_print = printer.as_test().unwrap();
greet(&printer, "Bob");
assert_eq!(test_print.output(), "Hello, Bob!\n");
test_print.clear();
greet(&printer, "Dave");
assert_eq!(test_print.output(), "Hello, Dave!\n");
}
}