v2 / vlib / v / tests / generic_calls / faker.v
23 lines · 18 sloc · 464 bytes · 0832a68bd714695d292aef2ca9b08d16b9a86516
Raw
1module main
2
3import rand.pcg32 { PCG32RNG }
4
5enum Lang {
6 en
7}
8
9pub struct Faker {
10pub mut:
11 lang Lang = .en
12 randomizer PCG32RNG
13 seeded bool
14}
15
16pub 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