use std::fs::File; use std::io::{self, BufRead}; use std::path::Path; fn main() { let file_path = String::from("input"); let mut index = 4; println!("In file {}", file_path); if let Ok(lines) = read_lines(file_path) { // Consumes the iterator, returns an (Optional) String for line in lines { if let Ok(ip) = line { let mut slice = &ip[(index - 4)..index]; while !(slice[0..1] != slice[1..2] && slice[1..2] != slice[2..3] && slice[0..1] != slice[2..3] && slice[0..1] != slice[3..4] && slice[1..2] != slice[3..4] && slice[2..3] != slice[3..4]) { index += 1; slice = &ip[(index - 4)..index]; } } } } println!("{}", index); } fn read_lines

(filename: P) -> io::Result>> where P: AsRef, { let file = File::open(filename)?; Ok(io::BufReader::new(file).lines()) }