1 //! A tiny, `no_std`-friendly facade around `std::io`. 2 //! Reexports types from `std` when available; otherwise reimplements and 3 //! provides some of the core logic. 4 //! 5 //! The main reason that `std::io` hasn't found itself reexported as part of 6 //! the `core` crate is the `std::io::{Read, Write}` traits' reliance on 7 //! `std::io::Error`, which may contain internally a heap-allocated `Box<Error>` 8 //! and/or now relying on OS-specific `std::backtrace::Backtrace`. 9 10 pub use self::imp::{Error, ErrorKind, Result, Write}; 11 12 #[cfg(not(feature = "std"))] 13 #[path = "core.rs"] 14 mod imp; 15 16 #[cfg(feature = "std")] 17 use std::io as imp; 18 19 #[cfg(feature = "std")] 20 pub use std::io::{Bytes, Read}; 21