mirror of
https://github.com/vlang/v.git
synced 2025-09-15 07:22:27 +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:
parent
ece73836aa
commit
66f21cae55
4 changed files with 82 additions and 0 deletions
|
@ -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())
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue