Fix up ParsePublickeyError

In #3847 we added an `InvalidCharError` into one of the variants of
`ParsePublicKeyError` but we forgot to update the trait
implementations.

Fix the `error::Error` and `Display` implementations for
`ParsePublicKeyError`. While we are at it match on `*self` as is
typical in this codebase.

 With this applied #3835 is fully resolved.

 Close: #3835
This commit is contained in:
Innocent Onyemaenu 2025-01-15 21:00:42 +01:00
parent 1af293efe3
commit b11ace359a
1 changed files with 7 additions and 6 deletions

View File

@ -1034,9 +1034,9 @@ impl From<Infallible> for ParsePublicKeyError {
impl fmt::Display for ParsePublicKeyError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
use ParsePublicKeyError::*;
match self {
Encoding(e) => write_err!(f, "string error"; e),
InvalidChar(char) => write!(f, "hex error {}", char),
match *self {
Encoding(ref e) => write_err!(f, "string error"; e),
InvalidChar(ref e) => write_err!(f, "hex decoding"; e),
InvalidHexLength(got) =>
write!(f, "pubkey string should be 66 or 130 digits long, got: {}", got),
}
@ -1048,9 +1048,10 @@ impl std::error::Error for ParsePublicKeyError {
fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
use ParsePublicKeyError::*;
match self {
Encoding(e) => Some(e),
InvalidChar(_) | InvalidHexLength(_) => None,
match *self {
Encoding(ref e) => Some(e),
InvalidChar(ref e) => Some(e),
InvalidHexLength(_) => None,
}
}
}