@@ -27,47 +27,18 @@ use crate::{
27
27
/// Trait for parsing keys from byte slices
28
28
pub trait ParseableKey : Sized + ToPublicKey + private:: Sealed {
29
29
/// Parse a key from slice
30
- fn from_slice ( sl : & [ u8 ] ) -> Result < Self , KeyParseError > ;
30
+ fn from_slice ( sl : & [ u8 ] ) -> Result < Self , KeyError > ;
31
31
}
32
32
33
33
impl ParseableKey for bitcoin:: PublicKey {
34
- fn from_slice ( sl : & [ u8 ] ) -> Result < Self , KeyParseError > {
35
- bitcoin:: PublicKey :: from_slice ( sl) . map_err ( KeyParseError :: FullKeyParseError )
34
+ fn from_slice ( sl : & [ u8 ] ) -> Result < Self , KeyError > {
35
+ bitcoin:: PublicKey :: from_slice ( sl) . map_err ( KeyError :: Full )
36
36
}
37
37
}
38
38
39
39
impl ParseableKey for bitcoin:: secp256k1:: XOnlyPublicKey {
40
- fn from_slice ( sl : & [ u8 ] ) -> Result < Self , KeyParseError > {
41
- bitcoin:: secp256k1:: XOnlyPublicKey :: from_slice ( sl)
42
- . map_err ( KeyParseError :: XonlyKeyParseError )
43
- }
44
- }
45
-
46
- /// Decoding error while parsing keys
47
- #[ derive( Debug , Clone , PartialEq , Eq ) ]
48
- pub enum KeyParseError {
49
- /// Bitcoin PublicKey parse error
50
- FullKeyParseError ( bitcoin:: key:: FromSliceError ) ,
51
- /// Xonly key parse Error
52
- XonlyKeyParseError ( bitcoin:: secp256k1:: Error ) ,
53
- }
54
-
55
- impl fmt:: Display for KeyParseError {
56
- fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
57
- match self {
58
- KeyParseError :: FullKeyParseError ( _e) => write ! ( f, "FullKey Parse Error" ) ,
59
- KeyParseError :: XonlyKeyParseError ( _e) => write ! ( f, "XonlyKey Parse Error" ) ,
60
- }
61
- }
62
- }
63
-
64
- #[ cfg( feature = "std" ) ]
65
- impl error:: Error for KeyParseError {
66
- fn cause ( & self ) -> Option < & ( dyn error:: Error + ' static ) > {
67
- match self {
68
- KeyParseError :: FullKeyParseError ( e) => Some ( e) ,
69
- KeyParseError :: XonlyKeyParseError ( e) => Some ( e) ,
70
- }
40
+ fn from_slice ( sl : & [ u8 ] ) -> Result < Self , KeyError > {
41
+ bitcoin:: secp256k1:: XOnlyPublicKey :: from_slice ( sl) . map_err ( KeyError :: XOnly )
71
42
}
72
43
}
73
44
@@ -727,3 +698,31 @@ fn is_and_v(tokens: &mut TokenIter) -> bool {
727
698
| Some ( & Tk :: Swap )
728
699
)
729
700
}
701
+
702
+ /// Decoding error while parsing keys
703
+ #[ derive( Debug , Clone , PartialEq , Eq ) ]
704
+ pub enum KeyError {
705
+ /// Bitcoin PublicKey parse error
706
+ Full ( bitcoin:: key:: FromSliceError ) ,
707
+ /// Xonly key parse Error
708
+ XOnly ( bitcoin:: secp256k1:: Error ) ,
709
+ }
710
+
711
+ impl fmt:: Display for KeyError {
712
+ fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
713
+ match self {
714
+ Self :: Full ( e) => e. fmt ( f) ,
715
+ Self :: XOnly ( e) => e. fmt ( f) ,
716
+ }
717
+ }
718
+ }
719
+
720
+ #[ cfg( feature = "std" ) ]
721
+ impl error:: Error for KeyError {
722
+ fn cause ( & self ) -> Option < & ( dyn error:: Error + ' static ) > {
723
+ match self {
724
+ Self :: Full ( e) => Some ( e) ,
725
+ Self :: XOnly ( e) => Some ( e) ,
726
+ }
727
+ }
728
+ }
0 commit comments