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;
+ extern crate buf_redux;
+ use buf_redux::BufReader;
BufReader
:
- use std::io::BufWriter;
+ extern crate buf_redux;
+ use buf_redux::BufWriter;
More Direct Control
Both BufReader
and BufWriter
provide methods to:
- Access the buffer through an
&
-reference without performing I/O - Force unconditional reads into the buffer
- Shuffle bytes down to the beginning of the buffer to make room for more reading
- Increase the capacity of the buffer
- Get the number of available bytes as well as the total capacity of the buffer
- Consume the
BufReader
without losing data - Get inner reader and trimmed buffer with the remaining data
- Get a
Read
adapter which empties the buffer and then pulls from the inner reader directly
BufReader
features:
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
shuffles bytes down to the beginning of the buffer, to make more room at the end, when deemed appropriate by theMoveStrategy
trait.
BufReader
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.
See the BufReader
type in this crate for more info.
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 |
Unbuffer |
A |
Traits
TrustRead |
A trait which |
Functions
copy_buf |
Copy data between a |