From af415647475b30e296ce7ef26abb9ec63d2458e6 Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Mon, 26 Dec 2011 19:31:25 -0800 Subject: [PATCH] libstd: add a method to generate random bytestrings. --- src/libstd/rand.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/libstd/rand.rs b/src/libstd/rand.rs index be350baadbe1..2d577a5fcf5e 100644 --- a/src/libstd/rand.rs +++ b/src/libstd/rand.rs @@ -39,6 +39,13 @@ type rng = obj { Return a random string composed of A-Z, a-z, 0-9. */ fn gen_str(len: uint) -> str; + + /* + Method: gen_bytes + + Return a random byte string. + */ + fn gen_bytes(len: uint) -> [u8]; }; resource rand_res(c: rustrt::rctx) { rustrt::rand_free(c); } @@ -74,6 +81,16 @@ fn mk_rng() -> rng { } s } + fn gen_bytes(len: uint) -> [u8] { + let v = []; + let i = 0u; + while i < len { + let n = rustrt::rand_next(**c) as uint; + v += [(n % (u8::max_value as uint)) as u8]; + i += 1u; + } + v + } } ret rt_rng(@rand_res(rustrt::rand_new())); }