diff options
| author | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2011-12-26 19:31:25 -0800 |
|---|---|---|
| committer | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2011-12-28 11:19:41 -0800 |
| commit | af415647475b30e296ce7ef26abb9ec63d2458e6 (patch) | |
| tree | d0033cc812f30484739c0d8e44138781d9ec84d7 /src/libstd | |
| parent | 5d84652f511d68f401493284c82525cdabe2fafb (diff) | |
| download | rust-af415647475b30e296ce7ef26abb9ec63d2458e6.tar.gz rust-af415647475b30e296ce7ef26abb9ec63d2458e6.zip | |
libstd: add a method to generate random bytestrings.
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/rand.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/libstd/rand.rs b/src/libstd/rand.rs index be350baadbe..2d577a5fcf5 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())); } |
