rand: add rand.uuid_v4()
parent
bfca55b87a
commit
bba0edf9a3
|
@ -131,6 +131,7 @@ pub fn f64_in_range(min, max f64) f64 {
|
||||||
|
|
||||||
const (
|
const (
|
||||||
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
||||||
|
hex_chars = '0123456789abcdef'
|
||||||
)
|
)
|
||||||
|
|
||||||
pub fn string(len int) string {
|
pub fn string(len int) string {
|
||||||
|
@ -142,3 +143,22 @@ pub fn string(len int) string {
|
||||||
}
|
}
|
||||||
return string(buf, len)
|
return string(buf, len)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// rand.uuid_v4 generate a completely random UUID (v4)
|
||||||
|
// See https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)
|
||||||
|
pub fn uuid_v4() string {
|
||||||
|
mut buf := malloc(37)
|
||||||
|
for i in 0..36 {
|
||||||
|
unsafe {
|
||||||
|
buf[i] = hex_chars[intn(16)]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unsafe {
|
||||||
|
buf[8] = `-`
|
||||||
|
buf[13] = `-`
|
||||||
|
buf[18] = `-`
|
||||||
|
buf[23] = `-`
|
||||||
|
buf[36] = 0
|
||||||
|
}
|
||||||
|
return string(buf, 36)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue