Skip to main content

fedimint_testing_core/
node_type.rs

1use std::fmt::{self};
2use std::str::FromStr;
3
4#[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd)]
5pub enum LightningNodeType {
6    Lnd,
7    Ldk,
8}
9
10impl fmt::Display for LightningNodeType {
11    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> {
12        match self {
13            LightningNodeType::Lnd => write!(f, "lnd"),
14            LightningNodeType::Ldk => write!(f, "ldk"),
15        }
16    }
17}
18
19impl FromStr for LightningNodeType {
20    type Err = String;
21
22    fn from_str(s: &str) -> Result<Self, Self::Err> {
23        match s.to_lowercase().as_str() {
24            "lnd" => Ok(LightningNodeType::Lnd),
25            "ldk" => Ok(LightningNodeType::Ldk),
26            _ => Err(format!("Invalid value for LightningNodeType: {s}")),
27        }
28    }
29}