diff --git a/src/librand/lib.rs b/src/librand/lib.rs index e96bf80feef6..0f8dbc78cde3 100644 --- a/src/librand/lib.rs +++ b/src/librand/lib.rs @@ -25,6 +25,7 @@ #![feature(macro_rules, phase, globs)] #![feature(unboxed_closures)] +#![feature(associated_types)] #![no_std] #![experimental] @@ -314,7 +315,9 @@ pub struct Generator<'a, T, R:'a> { rng: &'a mut R, } -impl<'a, T: Rand, R: Rng> Iterator for Generator<'a, T, R> { +impl<'a, T: Rand, R: Rng> Iterator for Generator<'a, T, R> { + type Item = T; + fn next(&mut self) -> Option { Some(self.rng.gen()) } @@ -327,7 +330,9 @@ pub struct AsciiGenerator<'a, R:'a> { rng: &'a mut R, } -impl<'a, R: Rng> Iterator for AsciiGenerator<'a, R> { +impl<'a, R: Rng> Iterator for AsciiGenerator<'a, R> { + type Item = char; + fn next(&mut self) -> Option { static GEN_ASCII_STR_CHARSET: &'static [u8] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZ\