diff --git a/vlib/rand/rand.v b/vlib/rand/rand.v index d1780c4172..0814a3f312 100644 --- a/vlib/rand/rand.v +++ b/vlib/rand/rand.v @@ -71,6 +71,11 @@ pub fn intn(max int) int { return default_rng.intn(max) } +// byte returns a uniformly distributed pseudorandom 8-bit unsigned positive `byte`. +pub fn byte() byte { + return byte(default_rng.intn(256)) +} + // int_in_range returns a uniformly distributed pseudorandom 32-bit signed int in range `[min, max)`. // Both `min` and `max` can be negative, but we must have `min < max`. pub fn int_in_range(min int, max int) int { diff --git a/vlib/rand/random_numbers_test.v b/vlib/rand/random_numbers_test.v index 18ce5c5f48..987787cc37 100644 --- a/vlib/rand/random_numbers_test.v +++ b/vlib/rand/random_numbers_test.v @@ -175,3 +175,16 @@ fn test_rand_f64_in_range() { assert value < max } } + +fn test_rand_byte() { + mut all := []byte{} + for _ in 0 .. 256 { + x := rand.byte() + assert x >= 0 + assert x <= 255 + all << x + } + all.sort(a < b) + assert all[0] != all[255] + assert all[0] != all[128] +} diff --git a/vlib/term/ui/input_windows.c.v b/vlib/term/ui/input_windows.c.v index eb1fb913d2..b1f2485bec 100644 --- a/vlib/term/ui/input_windows.c.v +++ b/vlib/term/ui/input_windows.c.v @@ -12,7 +12,7 @@ pub fn init(cfg Config) &Context { return &Context{} } -pub fn (mut ctx Context) run() { +pub fn (mut ctx Context) run() ? { panic(not_implemented_yet) }