Crate of the Week

Self suggestion: GitHub - SUPERCILEX/io-adapters: Adapters to convert between different writable APIs.

It lets you write code like this:

let mut output1 = String::new();
let mut output2 = [0u8; 13]; // Or io::stdout() for example

my_common_writer(&mut output1).unwrap();
my_common_writer(&mut output2.as_mut_slice().write_adapter()).unwrap();

fn my_common_writer(output: &mut impl fmt::Write) -> fmt::Result {
    write!(output, "Hello, World!")
}