15 lines
		
	
	
		
			463 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			15 lines
		
	
	
		
			463 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
pub type Iterator<T> |backing: &Any| = mut fn () -> Option<&T ref backing>
 | 
						|
 | 
						|
pub int Iterable<T> {
 | 
						|
    ref fn iterator() -> Iterator<T>(&self)
 | 
						|
}
 | 
						|
 | 
						|
fn main() {
 | 
						|
    let nums: List<Int> = [1, 2, 3]
 | 
						|
    let iterator: Iterator<Int> |backing = nums| = nums.iterator()
 | 
						|
    let first: &Int ref nums = iterator().unwrap()
 | 
						|
    let second: &Int ref nums = iterator().unwrap()
 | 
						|
    let third: &Int ref nums = iterator().unwrap()
 | 
						|
    println "${*first}, ${*second}, ${*third}"
 | 
						|
}
 |