use derive_more::{AsRef, Display, From, FromStr, Into};
use serde::{Deserialize, Serialize};
use uuid::Uuid;
#[derive(
Debug,
Clone,
Copy,
Serialize,
Deserialize,
Eq,
PartialEq,
AsRef,
Display,
From,
FromStr,
Into,
Hash,
)]
pub struct MessageId(Uuid);
impl MessageId {
pub const fn nil() -> Self {
MessageId(Uuid::nil())
}
pub const fn from_u128(id: u128) -> Self {
Self(Uuid::from_u128(id))
}
#[cfg(feature = "rand")]
pub fn generate() -> Self {
Self(Uuid::new_v4())
}
}