### What it does Checks for unused written/read amount. ### Why is this bad? `io::Write::write(_vectored)` and `io::Read::read(_vectored)` are not guaranteed to process the entire buffer. They return how many bytes were processed, which might be smaller than a given buffer's length. If you don't need to deal with partial-write/read, use `write_all`/`read_exact` instead. When working with asynchronous code (either with the `futures` crate or with `tokio`), a similar issue exists for `AsyncWriteExt::write()` and `AsyncReadExt::read()` : these functions are also not guaranteed to process the entire buffer. Your code should either handle partial-writes/reads, or call the `write_all`/`read_exact` methods on those traits instead. ### Known problems Detects only common patterns. ### Examples ``` use std::io; fn foo(w: &mut W) -> io::Result<()> { // must be `w.write_all(b"foo")?;` w.write(b"foo")?; Ok(()) } ```