Comment Comment by Expurple > multiple error variants that reference the same source error type which I always had issues with in `thiserror`.Huh? #[derive(Debug, thiserror::Error)] enum CustomError { #[error("failed to open a: {0}")] A(std::io::Error), #[error("failed to open b: {0}")] B(std::io::Error), } fn main() -> Result<(), CustomError> { std::fs::read_to_string("a").map_err(CustomError::A)?; std::fs::read_to_string("b").map_err(CustomError::B)?; Ok(()) } If I understand correctly, the main feature of snafu is "merely" reducing the boilerplace when adding context: low_level_result.context(ErrorWithContextSnafu { context })?; // vs low_level_result.map_err(|err| ErrorWithContext { err, context })?; But to me, the win seems to small to justify the added complexity. parent Expurple 1 year ago
Huh?
If I understand correctly, the main feature of snafu is "merely" reducing the boilerplace when adding context: But to me, the win seems to small to justify the added complexity.