proxmox_api/types/
vmid.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
4pub struct VmId(
5    #[serde(
6        deserialize_with = "crate::types::deserialize_int",
7        serialize_with = "crate::types::serialize_int"
8    )]
9    u64,
10);
11
12impl VmId {
13    pub fn new(value: u64) -> Option<Self> {
14        if value >= 100 && value <= 999_999_999 {
15            Some(Self(value))
16        } else {
17            None
18        }
19    }
20
21    pub fn get(&self) -> u64 {
22        self.0
23    }
24}
25
26impl std::fmt::Display for VmId {
27    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
28        write!(f, "{}", self.0)
29    }
30}