1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
//! A `libstd` wrapper with more detailed errors. This crate mirrors the `std` //! module tree, replacing failable functions and structs with wrappers that add //! additional information to the errors returned. *WIP, so not all of `libstd` //! may be covered*. //! //! To use `ex`, simply replace a `use std::x` with `use ex::x` for any `x`. //! Some structs are different from `libstd`'s, so there might exist some //! friction with external crates. In that case, see the `Wrapper` trait on how //! to get the wrapped structs. //! //! `ex` also uses custom error types to transport the augmented error messages. //! In all cases, you can use `err.cause()` to get a reference to the original //! error, or the `Wrapper` trait. pub mod fs; pub mod io; use std::ops::{Deref, DerefMut}; pub trait Wrapper<T>: Deref<Target = T> + DerefMut<Target = T> { fn into_inner(self) -> T; }