We discussed this in years gone past but I can't remember where we landed.
The default impl of std::error::Error returns None so there are two ways to implement the trait for an error type that does not have an inner error.
Less explicit
#[cfg(feature = "std")]
impl std::error::Error for UnknownDenominationError {}
More explicit
#[cfg(feature = "std")]
impl std::error::Error for UnknownDenominationError {
fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { None }
}
We have a ton of both, should be pick one and be uniform?