ergo_node_interface/
types.rs

1use std::str::FromStr;
2
3use derive_more::{Display, From, Into};
4use serde::{Deserialize, Serialize};
5
6use crate::node_interface::NodeError;
7
8#[derive(Debug, Copy, Clone, From, Into, Display, Serialize, Deserialize, PartialEq, Eq, Hash)]
9pub struct ScanId(u64);
10
11impl FromStr for ScanId {
12    type Err = NodeError;
13
14    fn from_str(s: &str) -> Result<Self, Self::Err> {
15        let scan_id = s
16            .parse::<u64>()
17            .map_err(|_| NodeError::InvalidScanId(s.to_string()))?;
18        Ok(ScanId(scan_id))
19    }
20}