Skip to main content

wagyu_model/
network.rs

1use std::{
2    fmt::{Debug, Display},
3    hash::Hash,
4    str::FromStr,
5};
6
7/// The interface for a generic network.
8pub 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}