=========== Quick Error =========== :Status: production-ready :Documentation: http://tailhook.github.io/quick-error/ A macro which makes error types pleasant to write. Features: * Define enum type with arbitrary parameters * Concise notation of ``Display`` and ``Error`` traits * Full control of ``Display`` and ``Error`` trait implementation * Any number of ``From`` traits * Support for all enum-variants ``Unit``, ``Tuple`` and ``Struct`` Here is the comprehensive example: .. code-block:: rust quick_error! { #[derive(Debug)] pub enum IoWrapper { Io(err: io::Error) { from() display("I/O error: {}", err) cause(err) } Other(descr: &'static str) { display("Error {}", descr) } IoAt { place: &'static str, err: io::Error } { cause(err) display(me) -> ("io error at {}: {}", place, err) from(s: String) -> { place: "some string", err: io::Error::new(io::ErrorKind::Other, s) } } Discard { from(&'static str) } } } ======= License ======= Licensed under either of * Apache License, Version 2.0, (./LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) * MIT license (./LICENSE-MIT or http://opensource.org/licenses/MIT) at your option. ------------ Contribution ------------ Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.