fn mutual_inclusion(first_pair: &[u32], second_pair: &[u32]) -> bool { (first_pair[0] <= second_pair[0] && first_pair[1] >= second_pair[1]) || (second_pair[0] <= first_pair[0] && second_pair[1] >= first_pair[1]) } pub fn solve_part1(file_path: &str) -> i32 { let result = std::fs::read_to_string(file_path) .expect("Please provide a text file as an argument.") .lines() .map(|line| { let tmp = line.split(',').collect::>(); let firs_pair = tmp .first() .expect("First character error") .split('-') .map(|first_split| { first_split .parse::() .expect("Parsing number in first pair failed") }) .collect::>(); let second_pair = tmp .last() .expect("First character error") .split('-') .map(|first_split| { first_split .parse::() .expect("Parsing number in first pair failed") }) .collect::>(); if mutual_inclusion(&firs_pair, &second_pair) { 1 } else { 0 } }) .collect::>(); result.iter().sum() }