In my experience it's not quite as automatic as you'd hope. I always often to throw in stuff like `.map_err(Into::into)` or `Ok(foo?)` to convert the errors.
Not the end of the world but I do think defending the proliferation of error types in typical Rust projects is copium.
There are plenty of reasons you can complain about Rust's error handling, but "proliferation of error types" feels like a misunderstanding of how Rust error handling works in the first place.
Not the end of the world but I do think defending the proliferation of error types in typical Rust projects is copium.