# BufReaderWriter The `BufReaderWriterRand` and `BufReaderWriterSeq` are convenience structs that facilitate automatic switching between buffered reading and writing from a single underlying IO instance. `BufReaderWriterRand` is for random access IO (i.e. Read + Write + Seek, such as `std::fs::File`), while `BufReaderWriterSeq` is for sequential IO (i.e. Read + Write, such as `std::net::TcpStream`). Both structs move the underlying IO instance between a BufReader and BufWriter as needed. However, when switching from reading to writing, `BufReaderWriterRand` discards any buffered data and seeks the underlying IO instance back to the current BufReader position, while `BufReaderWriterSeq` saves any buffered data and makes it available for subsequent reads. ### Links * Crate on [crates.io](https://crates.io/crates/bufreaderwriter) * Documentation on [docs.rs](https://docs.rs/bufreaderwriter)