Add Reset mode

This commit is contained in:
gingerBill
2024-06-15 15:17:23 +01:00
parent eaec8a2bbf
commit 318d5e4a7e
4 changed files with 39 additions and 13 deletions
+12
View File
@@ -23,6 +23,16 @@ to_random_generator :: proc(r: ^Rand) -> runtime.Random_Generator {
switch mode {
case .Read:
_ = read(p, r)
case .Reset:
if r.is_system {
return
}
seed: u64
runtime.mem_copy_non_overlapping(&seed, raw_data(p), min(size_of(seed), len(p)))
init(r, seed)
case .Query_Info:
if len(p) != size_of(runtime.Random_Generator_Query_Info) {
return
@@ -31,6 +41,8 @@ to_random_generator :: proc(r: ^Rand) -> runtime.Random_Generator {
info^ += {.Uniform}
if r.is_system {
info^ += {.External_Entropy}
} else {
info^ += {.Resettable}
}
}
},