stratum_server/types/
id.rs

1use serde::{Deserialize, Serialize};
2use std::fmt;
3
4#[derive(Serialize, Deserialize, Clone, Debug)]
5#[serde(untagged)]
6pub enum ID {
7    Num(u64),
8    Str(String),
9    Null(serde_json::Value),
10}
11
12impl ID {
13    #[must_use]
14    pub fn null() -> ID {
15        ID::Null(serde_json::Value::Null)
16    }
17}
18
19impl std::fmt::Display for ID {
20    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
21        match self {
22            ID::Num(ref e) => write!(f, "{e}"),
23            ID::Str(ref e) => write!(f, "{e}"),
24            ID::Null(ref _e) => write!(f, "null"),
25        }
26    }
27}