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!")
}