1use fake::Fake;
2use strum::EnumIter;
3use strum::IntoEnumIterator;
4
5#[derive(Clone, Copy, Debug, strum::Display, EnumIter)]
7pub enum FkrOption {
8 Uuidv4,
10 Uuidv7,
12 Email,
14 UserAgent,
16 IPv4,
18 IPv6,
20 MACAddress,
22}
23
24impl FkrOption {
25 pub fn gen_string(&self) -> String {
27 match self {
28 Self::Uuidv4 => fake::uuid::UUIDv4.fake::<String>(),
29 Self::Uuidv7 => fake::uuid::UUIDv7.fake::<String>(),
30 Self::Email => fake::faker::internet::en::SafeEmail().fake::<String>(),
31 Self::UserAgent => fake::faker::internet::en::UserAgent().fake::<String>(),
32 Self::MACAddress => fake::faker::internet::en::MACAddress().fake::<String>(),
33 Self::IPv4 => fake::faker::internet::en::IPv4().fake::<String>(),
34 Self::IPv6 => fake::faker::internet::en::IPv6().fake::<String>(),
35 }
36 }
37
38 pub fn to_vec() -> Vec<Self> {
40 Self::iter().collect()
41 }
42}