kxio/examples/printer.rs

35 lines
848 B
Rust
Raw Permalink Normal View History

2024-12-07 10:49:42 +00:00
use kxio::{kxprintln, print::Printer};
// Example using kxprintln macro
fn greet(printer: &Printer, name: &str) {
kxprintln!(printer, "Hello, {}!", name);
}
fn main() {
// Production code example
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() {
// Test code
let printer = Printer::test();
// Get reference to TestPrinter so we can make assertions
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");
}
}