1.0.29
-
Support error types containing generic type parameters (#148, #149, #150, #151)
use thiserror::Error; #[derive(Error, Debug)] pub enum MyError<E, F, G> { #[error("thing {0} ({0:?})")] Variant(E), #[error("some error")] Delegate(#[source] SomeError<F>), #[error("err 0o{val:o}")] Octal { val: G }, }
In the above example, thiserror would automatically generate the following pair of generic trait impls.
impl<E, F, G> std::error::Error for MyError<E, F, G> where SomeError<F>: std::error::Error + 'static, Self: std::fmt::Debug + std::fmt::Display; impl<E, F, G> std::fmt::Display for MyError<E, F, G> where E: std::fmt::Debug + std::fmt::Display, G: std::fmt::Octal;