Skip to content

Commit

Permalink
Fix up ParsePublickeyError
Browse files Browse the repository at this point in the history
In rust-bitcoin#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 rust-bitcoin#3835 is fully resolved.

Close: rust-bitcoin#3853
  • Loading branch information
rockcoolsaint committed Jan 14, 2025
1 parent b26512c commit 7befa66
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions bitcoin/src/crypto/key.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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),
}
Expand All @@ -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,
}
}
}
Expand Down

0 comments on commit 7befa66

Please sign in to comment.