#![cfg(feature = "std-rand")]
use super::Generator;
use super::DEFAULT_SIZE;
use crate::alphabet::{Alphabet, DEFAULT};
use rand::{rngs::ThreadRng, thread_rng};
impl<'a, const N: usize> Generator<'a, ThreadRng, N> {
pub fn with_alphabet(alphabet: &'a Alphabet<N>) -> Self {
Self::new(DEFAULT_SIZE, alphabet, thread_rng())
}
}
impl<'a> Generator<'a, ThreadRng> {
pub fn with_size(size: usize) -> Self {
Self {
alphabet: &DEFAULT,
random: thread_rng(),
size,
}
}
}
impl Default for Generator<'static, rand::rngs::ThreadRng> {
fn default() -> Self {
Self {
alphabet: &DEFAULT,
random: thread_rng(),
size: DEFAULT_SIZE,
}
}
}
#[inline]
pub fn randoid() -> String {
Generator::default().gen()
}