|
1 | 1 | //! Random number generation
|
2 | 2 |
|
| 3 | +// NB: transitional, de-mode-ing. |
| 4 | +#[warn(deprecated_mode)]; |
| 5 | +#[forbid(deprecated_pattern)]; |
| 6 | + |
3 | 7 | #[allow(non_camel_case_types)] // runtime type
|
4 | 8 | enum rctx {}
|
5 | 9 |
|
@@ -120,7 +124,7 @@ impl Rng {
|
120 | 124 | /**
|
121 | 125 | * Return a char randomly chosen from chars, failing if chars is empty
|
122 | 126 | */
|
123 |
| - fn gen_char_from(chars: ~str) -> char { |
| 127 | + fn gen_char_from(chars: &str) -> char { |
124 | 128 | assert !chars.is_empty();
|
125 | 129 | self.choose(str::chars(chars))
|
126 | 130 | }
|
@@ -272,8 +276,8 @@ pub fn Rng() -> Rng {
|
272 | 276 | * all other generators constructed with the same seed. The seed may be any
|
273 | 277 | * length.
|
274 | 278 | */
|
275 |
| -pub fn seeded_rng(seed: ~[u8]) -> Rng { |
276 |
| - @RandRes(rustrt::rand_new_seeded(seed)) as Rng |
| 279 | +pub fn seeded_rng(seed: &~[u8]) -> Rng { |
| 280 | + @RandRes(rustrt::rand_new_seeded(*seed)) as Rng |
277 | 281 | }
|
278 | 282 |
|
279 | 283 | type XorShiftState = {
|
@@ -310,24 +314,24 @@ pub mod tests {
|
310 | 314 | #[test]
|
311 | 315 | pub fn rng_seeded() {
|
312 | 316 | let seed = rand::seed();
|
313 |
| - let ra = rand::seeded_rng(seed); |
314 |
| - let rb = rand::seeded_rng(seed); |
| 317 | + let ra = rand::seeded_rng(&seed); |
| 318 | + let rb = rand::seeded_rng(&seed); |
315 | 319 | assert ra.gen_str(100u) == rb.gen_str(100u);
|
316 | 320 | }
|
317 | 321 |
|
318 | 322 | #[test]
|
319 | 323 | pub fn rng_seeded_custom_seed() {
|
320 | 324 | // much shorter than generated seeds which are 1024 bytes
|
321 | 325 | let seed = ~[2u8, 32u8, 4u8, 32u8, 51u8];
|
322 |
| - let ra = rand::seeded_rng(seed); |
323 |
| - let rb = rand::seeded_rng(seed); |
| 326 | + let ra = rand::seeded_rng(&seed); |
| 327 | + let rb = rand::seeded_rng(&seed); |
324 | 328 | assert ra.gen_str(100u) == rb.gen_str(100u);
|
325 | 329 | }
|
326 | 330 |
|
327 | 331 | #[test]
|
328 | 332 | pub fn rng_seeded_custom_seed2() {
|
329 | 333 | let seed = ~[2u8, 32u8, 4u8, 32u8, 51u8];
|
330 |
| - let ra = rand::seeded_rng(seed); |
| 334 | + let ra = rand::seeded_rng(&seed); |
331 | 335 | // Regression test that isaac is actually using the above vector
|
332 | 336 | let r = ra.next();
|
333 | 337 | error!("%?", r);
|
|
0 commit comments