1use std::{
2 fmt::{Debug, Display},
3 hash::Hash,
4 str::FromStr,
5};
6
7pub trait Network: Copy + Clone + Debug + Display + FromStr + Send + Sync + 'static + Eq + Ord + Sized + Hash {
9 const NAME: &'static str;
10}
11
12#[derive(Debug, Fail)]
13pub enum NetworkError {
14 #[fail(display = "invalid extended private key prefix: {}", _0)]
15 InvalidExtendedPrivateKeyPrefix(String),
16
17 #[fail(display = "invalid extended public key prefix: {}", _0)]
18 InvalidExtendedPublicKeyPrefix(String),
19
20 #[fail(display = "invalid network: {}", _0)]
21 InvalidNetwork(String),
22}