A type safe, low level replacement for `std::io`.
Because of limitations of `std::io::Error` type, `genio` provides `Read` and
`Write` traits that allow implementors to choose their own type. This type can
be better at expressing what kinds of error can happen.
use Read;usevoid::Void;/// Reader that infinitely repeats single byte.
////// It will never fail and never return 0.
pubstructRepeat{byte:u8,
}implRead forRepeat{typeReadError= Void;fnread(&mutself, buf:&mut [u8])->Result<usize, Self::ReadError>{// TODO: use memset?
let len = buf.len();for b in buf {*b =self.byte;}Ok(len)}}