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