mirror of
https://github.com/HeyPuter/firefox.git
synced 2026-11-13 20:14:57 -10:00
We're going to update the MSRV to 1.90 soon, and we might as well remove the hacks we have in place from bug 1982939 and bug 1995920 for vendoring backwards compatibility early. Differential Revision: https://phabricator.services.mozilla.com/D279628
===========
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.