Crate buf_redux [−] [src]
Drop-in replacements for buffered I/O types in std::io
.
These replacements retain the method names/signatures and implemented traits of their stdlib counterparts, making replacement as simple as swapping the import of the type:
BufReader
:
- use std::io::BufReader;
+ use buf_redux::BufReader;
BufWriter
:
- use std::io::BufWriter;
+ use buf_redux::BufWriter;
LineWriter
:
- use std::io::LineWriter;
+ use buf_redux::LineWriter;
More Direct Control
All replacement types provide methods to:
- Increase the capacity of the buffer
- Get the number of available bytes as well as the total capacity of the buffer
- Consume the wrapper without losing data
BufReader
provides methods to:
- Access the buffer through an
&
-reference without performing I/O - Force unconditional reads into the buffer
- Get a
Read
adapter which empties the buffer and then pulls from the inner reader directly - Shuffle bytes down to the beginning of the buffer to make room for more reading
- Get inner reader and trimmed buffer with the remaining data
BufWriter
and LineWriter
provides methods to:
- Flush the buffer and unwrap the inner writer unconditionally.
- Get the inner writer and trimmed buffer with the unflushed data.
More Sensible and Customizable Buffering Behavior
- Tune the behavior of the buffer to your specific use-case using the types in the
strategy
module:BufReader
performs reads as dictated by theReadStrategy
trait.BufReader
moves bytes down to the beginning of the buffer, to make more room at the end, when deemed appropriate by theMoveStrategy
trait.BufWriter
flushes bytes to the inner writer when full, or when deemed appropriate by theFlushStrategy
trait.
Buffer
uses exact allocation instead of leaving it up toVec
, which allocates sizes in powers of two.- Vec's behavior is more efficient for frequent growth, but much too greedy for infrequent growth and custom capacities.
Modules
strategy |
Types which can be used to tune the behavior of |
Structs
BufReader |
A drop-in replacement for |
BufWriter |
A drop-in replacement for |
Buffer |
A deque-like datastructure for managing bytes. |
IntoInnerError |
The error type for |
LineWriter |
A drop-in replacement for |
Unbuffer |
A |
Traits
TrustRead |
A trait which |
Functions
copy_buf |
Copy data between a |