mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
rand: add pub fn rand.read(mut buf []byte)
and pub fn rand.bytes(needed int) ?[]byte{}
+ tests
This commit is contained in:
@@ -138,3 +138,17 @@ fn init() {
|
||||
default_rng = new_default()
|
||||
C.atexit(deinit)
|
||||
}
|
||||
|
||||
// read fills in `buf` a maximum of `buf.len` random bytes
|
||||
pub fn read(mut buf []byte) {
|
||||
p64 := unsafe { &u64(buf.data) }
|
||||
u64s := buf.len / 8
|
||||
for i in 0 .. u64s {
|
||||
unsafe {
|
||||
*(p64 + i) = default_rng.u64()
|
||||
}
|
||||
}
|
||||
for i in u64s * 8 .. buf.len {
|
||||
buf[i] = byte(default_rng.u32())
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user