about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/rand.rs17
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()));
 }