Port of a subset of Rust's standard library I/O module to no_std.
The implementation is taken directly from libstd with small number of changes to make it work with no_std. All interfaces and implementation match the original code since they did not need to be altered. The only exception to this is Error/ErrorKind types where I rolled with something simpler for now.
All credit for this work goes to the incredible Rust developers.
While working on a bare metal Raspberry Pi 3 project, I found that libcore lacks data reading/writing functions available in libstd. Since most of them are generic and operate on streams that are not tied to file/os implementation, why not make them available to the world of embedded development.
The following modules were ported over:
| Module | Status | |-------------------|-------------| | buffered | Skipped | | cursor | Done | | impls | Done | | lazy | Skipped | | mod | Done | | stdio | Skipped | | util | Skipped |