Can I specify what subset of errors a function can return?
Can I specify what subset of errors a function can return?
I have two functions that are similar but can fail with different errors:
rust
#[derive(Debug, thiserror::Error)] enum MyError { #[error("error a")] MyErrorA, #[error("error b")] MyErrorB, #[error("bad value ({0})")] MyErrorCommon(String), } fn functionA() -> Result<String, MyError> { // can fail with MyErrorA MyErrorCommon todo!() } fn functionB() -> Result<String, MyError> { // can fail with MyErrorB MyErrorCommon todo!() }
Is there an elegant () way I can express this?
If I split the error type into two separate types, is there a way to reuse the definition of MyErrorCommon
?
() by "elegant" I mean something that improves the code - I'm sure one could define a few macros and solve that way, but I don't want to go there
edit: grammar (rust grammar)