proc_heim/process/model/
id.rs

1use std::fmt::Display;
2
3use uuid::Uuid;
4
5/// Type representing an ID of spawned process. Uses `UUID` internally.
6#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
7pub struct ProcessId {
8    inner: Uuid,
9}
10
11impl ProcessId {
12    pub(crate) fn random() -> Self {
13        Self {
14            inner: Uuid::new_v4(),
15        }
16    }
17}
18
19impl Display for ProcessId {
20    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
21        f.write_str(&self.inner.to_string())
22    }
23}
24
25impl From<Uuid> for ProcessId {
26    fn from(inner: Uuid) -> Self {
27        Self { inner }
28    }
29}
30
31impl AsRef<Uuid> for ProcessId {
32    fn as_ref(&self) -> &Uuid {
33        &self.inner
34    }
35}