[newbie] Can I specify what subset of errors a function can return?
from gomp@lemmy.ml to rust@lemmy.ml on 19 Nov 2024 16:29
https://lemmy.ml/post/22676981
from gomp@lemmy.ml to rust@lemmy.ml on 19 Nov 2024 16:29
https://lemmy.ml/post/22676981
I have two functions that are similar but can fail with different errors:
#[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)
threaded - newest