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}