polars_utils/
unique_id.rs1use uuid::Uuid;
2
3#[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}