Expand description
This crate provides more generic alternatives to std::io::* traits and types. std::io
suffers several issues because of over-use of std::io::Error type. One of them is allocation
when creating Error type, other is inability to cleanly define errors which make sense in
particular implementation, impossibility of use in no_std environments and more.
To solve these problems, genio::Read, genio::Write and other traits are allowed to define
their own error types. Together with other utilities and std glue they provide a way to write
more clear, portable and re-usable code.
Modules§
- bufio
- Contains traits and impls for buffering.
- error
- Error types and various operations on them.
- ext
- This module contains various extension traits.
- std_
impls - This module contains glue
for std::ioand otherstdtypes. - util
- This module contains various generic utilities related to IO.
Traits§
- Extend
From Reader - This trait is similar to slow one. The difference is that thanks to reader guaranteeing correctness, this one can use uninitialized buffer.
- Extend
From Reader Slow - Some types can be extended by reading from reader. The most well-known is probably
Vec. It is possible to implement it manually, but it may be more efficient if the type implements this trait directly. In case ofVec, it means reading directly into uninitialized part of reserved memory in case of the fast version of this trait. - Read
- The Read trait allows for reading bytes from a source.
- Read
Overwrite - This marker trait declares that the Read trait is implemented correctly, that means:
- Write
- A trait for objects which are byte-oriented sinks.