https://github.com/rmja/buffered-io
Bufferering types for embedded-io
https://github.com/rmja/buffered-io
Last synced: 11 months ago
JSON representation
Bufferering types for embedded-io
- Host: GitHub
- URL: https://github.com/rmja/buffered-io
- Owner: rmja
- Created: 2023-03-02T06:54:55.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-06-28T08:35:54.000Z (about 2 years ago)
- Last Synced: 2024-11-13T09:53:39.705Z (over 1 year ago)
- Language: Rust
- Size: 31.3 KB
- Stars: 1
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Buffer Types for embedded-io
[](https://github.com/rmja/buffered-io/actions/workflows/ci.yaml)
[](https://crates.io/crates/buffered-io)
[](https://docs.rs/buffered-io)
The `buffered-io` crate implements buffering for the `embedded-io`/`embedded-io-async` `Read` and `Write` traits.
## Example
```rust
tokio_test::block_on(async {
use buffered_io::asynch::BufferedWrite;
use embedded_io_async::Write;
let uart_tx = Vec::new(); // The underlying uart peripheral implementing Write to where buffered bytes are written
let mut write_buf = [0; 120];
let mut buffering = BufferedWrite::new(uart_tx, &mut write_buf);
buffering.write(b"hello").await.unwrap(); // This write is buffered
buffering.write(b" ").await.unwrap(); // This write is also buffered
buffering.write(b"world").await.unwrap(); // This write is also buffered
buffering.flush().await.unwrap(); // The string "hello world" is written to uart in one write
})
```