// crate::newtype!(WebhookAuth is a ulid::Ulid, derive_more::Display); impl WebhookAuth { pub fn try_new(authorisation: &str) -> Result { use std::str::FromStr as _; let id = ulid::Ulid::from_str(authorisation)?; tracing::info!("Parse auth token: {}", id); Ok(Self(id)) } pub fn generate() -> Self { Self(ulid::Ulid::new()) } pub fn header_value(&self) -> String { format!("Basic {}", self) } pub const fn to_bytes(&self) -> [u8; 16] { self.0.to_bytes() } }