-
Notifications
You must be signed in to change notification settings - Fork 365
Description
I'm finding that, in practice, the new HandlerError' type constraints may have made error handling hard/awkward to satisfy for users
common cases I run into is trying to represent a foreign crate type for with lambda_runtime_errors::LambdaErrorExt. Since the Fail crate is becoming more common I think that's okay, but still rough if the foreign crates error type sticks to the standard library error type
I find myself often cluttering map_err(HandlerError::new)
code with this
// I don't control the Err type of foo_bar as its defined in another crate
// so I can't impl lambda_runtime_errors::LambdaErrorExt for ThatError { ... }
foo_bar(input).map_err(HandlerError::new)? // fails to compile because no impl for lambda_runtime_errors::LambdaErrorExt
This is unfortunate for users because often these are simple hello world integrate xxx with lambda cases where the majority of the code written is satisfying the trait constraints on errors and not the code what brings business value.
I understand why this constraint exists but I want to revisit the value for users this is providing vs what its costing to author lambdas.
I've ran into this enough that I wanted to reopen the floor for alternative options.