polars_utils/
unique_id.rs

1use uuid::Uuid;
2
3/// Unique identifier.
4#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
5#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
6pub struct UniqueId(Uuid);
7
8impl UniqueId {
9    #[expect(clippy::new_without_default)]
10    #[inline]
11    pub fn new() -> Self {
12        Self(Uuid::new_v4())
13    }
14
15    pub fn as_u128(&self) -> u128 {
16        self.0.as_u128()
17    }
18}
19
20impl std::fmt::Display for UniqueId {
21    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
22        write!(f, "{}", self.0.as_hyphenated())
23    }
24}