Awesome Open Source
Awesome Open Source

=========== Quick Error

:Status: production-ready :Documentation:

A macro which makes error types pleasant to write.


  • 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! {
    pub enum IoWrapper {
        Io(err: io::Error) {
            display("I/O error: {}", err)
        Other(descr: &'static str) {
            display("Error {}", descr)
        IoAt { place: &'static str, err: io::Error } {
            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

at your option.


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.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
rust (4,867
conversion (84
reporting (81
error (44
macro (36