use derive_more::{Display, From, FromStr, Into};
use crate::utils::ExampleData;
#[derive(Display, From, FromStr, Into, Debug, Clone, PartialEq, Eq, Hash)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
pub struct ResumptionToken(String);
impl ResumptionToken {
#[cfg(feature = "rand")]
pub fn generate() -> Self {
use rand::RngExt;
let token = rand::rng()
.sample_iter(rand::distr::Alphanumeric)
.take(64)
.map(char::from)
.collect();
Self(token)
}
}
impl ExampleData for ResumptionToken {
fn example_data() -> Self {
Self("654321zyxwvutsrqponmlkjihgfedcba654321zyxwvutsrqponmlkjihgfedcba".to_string())
}
}