#[derive(Construct)]
{
// Attributes available to this derive:
#[thiserror_ext]
#[construct]
}
Expand description
Generates constructor functions for different variants of the error type.
The arguments of the constructor functions can be any types that implement
Into for the corresponding fields of the variant, enabling convenient
construction of the error type.
§Example
ⓘ
#[derive(Debug, thiserror::Error, thiserror_ext::Construct)]
enum Error {
#[error("unsupported feature: {0}")]
UnsupportedFeature { name: String },
#[error("internal error: {0}")]
#[construct(skip)] // to skip generating the constructor
InternalError(String),
}
// Any type that implements `Into<String>` is accepted as the argument.
let _: Error = Error::unsupported_feature("foo");§New type
If a new type is specified with #[thiserror_ext(newtype(..))], the
constructors will be implemented on the new type instead.
See the documentation of thiserror_ext::Box or thiserror_ext::Arc
for more details.