| 1 | module main |
| 2 | |
| 3 | import rand.pcg32 { PCG32RNG } |
| 4 | |
| 5 | enum Lang { |
| 6 | en |
| 7 | } |
| 8 | |
| 9 | pub struct Faker { |
| 10 | pub mut: |
| 11 | lang Lang = .en |
| 12 | randomizer PCG32RNG |
| 13 | seeded bool |
| 14 | } |
| 15 | |
| 16 | pub fn (mut this Faker) random_element[T](elements []T) T { |
| 17 | number_of_elements := u64(elements.len) |
| 18 | random_index := this.randomizer.u64() % number_of_elements |
| 19 | |
| 20 | return elements[int(random_index)] or { |
| 21 | panic('Failed to get random element at index ${random_index} with length ${number_of_elements}.') |
| 22 | } |
| 23 | } |
| 24 |