The buffered-io crate implements buffering for the embedded-io/embedded-io-asyncRead and Write traits.
use buffered_io::BufferedWrite;use embedded_io::Write;let uart_tx = Vec::new();// The underlying uart peripheral implementing Write to where buffered bytes are writtenletmut write_buf = [0;120];letmut buffering = BufferedWrite::new(uart_tx,&mut write_buf);
buffering.write(b"hello").unwrap();// This write is buffered
buffering.write(b" ").unwrap();// This write is also buffered
buffering.write(b"world").unwrap();// This write is also buffered
buffering.flush().unwrap();// The string "hello world" is written to uart in one write