]> git.lizzy.rs Git - rust.git/commitdiff
libstd: add a method to generate random bytestrings.
authorErick Tryzelaar <erick.tryzelaar@gmail.com>
Tue, 27 Dec 2011 03:31:25 +0000 (19:31 -0800)
committerErick Tryzelaar <erick.tryzelaar@gmail.com>
Wed, 28 Dec 2011 19:19:41 +0000 (11:19 -0800)
src/libstd/rand.rs

index be350baadbe1ab17c5be9812eaa0d75dd88ee2d6..2d577a5fcf5e07441b7b19a244821267fa239321 100644 (file)
     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 gen_str(len: uint) -> str {
             }
             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()));
 }