1use std::fmt;
4
5use bitcoin::{base58, bip32};
6
7#[derive(Debug, PartialEq, Eq)]
9pub enum Error {
10 Base58(base58::Error),
12 Bip32(bip32::Error),
14 MissingPrefix,
16 UnknownPrefix,
18}
19
20impl std::error::Error for Error {}
21
22impl fmt::Display for Error {
23 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
24 match self {
25 Self::Base58(e) => write!(f, "{e}"),
26 Self::Bip32(e) => write!(f, "{e}"),
27 Self::MissingPrefix => write!(f, "Missing SLIP-32 prefix"),
28 Self::UnknownPrefix => write!(f, "Unknown SLIP-32 prefix"),
29 }
30 }
31}
32
33impl From<base58::Error> for Error {
34 fn from(e: base58::Error) -> Self {
35 Self::Base58(e)
36 }
37}
38
39impl From<bip32::Error> for Error {
40 fn from(e: bip32::Error) -> Self {
41 Self::Bip32(e)
42 }
43}