rs_puff/types/
id.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
4#[serde(untagged)]
5pub enum Id {
6    Uint(u64),
7    String(String),
8}
9
10impl From<u64> for Id {
11    fn from(v: u64) -> Self {
12        Id::Uint(v)
13    }
14}
15
16impl From<i64> for Id {
17    fn from(v: i64) -> Self {
18        Id::Uint(v as u64)
19    }
20}
21
22impl From<i32> for Id {
23    fn from(v: i32) -> Self {
24        Id::Uint(v as u64)
25    }
26}
27
28impl From<&str> for Id {
29    fn from(v: &str) -> Self {
30        Id::String(v.to_string())
31    }
32}
33
34impl From<String> for Id {
35    fn from(v: String) -> Self {
36        Id::String(v)
37    }
38}