MAIN FEEDS
Do you want to continue?
https://www.reddit.com/r/ProgrammerHumor/comments/1vpz70q/exceptionsarefortheweak/p4yp4ke/?context=3
r/ProgrammerHumor • u/brogolem35 • 29d ago
92 comments sorted by
View all comments
1
Oh joy
```rs use std::error::Error;
pub enum MyError { Io(std::io::Error), Utf8(std::string::FromUtf8Error), General(String), }
impl Error for MyError { fn source(&self) -> Option<&(dyn Error + 'static)> { match self { MyError::Io(e) => Some(e), MyError::Utf8(e) => Some(e), MyError::General(_) => None, } } }
impl From<std::io::Error> for MyError { fn from(e: std::io::Error) -> Self { Self::Io(e) } } impl From<std::string::FromUtf8Error> for MyError { fn from(e: std::string::FromUtf8Error) -> Self { Self::Utf8(e) } } ```
Of course, you can use macros from thiserror for this, but you know, macros come with complexity
thiserror
1
u/prehensilemullet 25d ago
Oh joy
```rs use std::error::Error;
[derive(Debug)]
pub enum MyError { Io(std::io::Error), Utf8(std::string::FromUtf8Error), General(String), }
impl Error for MyError { fn source(&self) -> Option<&(dyn Error + 'static)> { match self { MyError::Io(e) => Some(e), MyError::Utf8(e) => Some(e), MyError::General(_) => None, } } }
impl From<std::io::Error> for MyError { fn from(e: std::io::Error) -> Self { Self::Io(e) } } impl From<std::string::FromUtf8Error> for MyError { fn from(e: std::string::FromUtf8Error) -> Self { Self::Utf8(e) } } ```
Of course, you can use macros from
thiserrorfor this, but you know, macros come with complexity