day 24
This commit is contained in:
		
							
								
								
									
										7
									
								
								d24/Cargo.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								d24/Cargo.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					# This file is automatically @generated by Cargo.
 | 
				
			||||||
 | 
					# It is not intended for manual editing.
 | 
				
			||||||
 | 
					version = 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[package]]
 | 
				
			||||||
 | 
					name = "d05"
 | 
				
			||||||
 | 
					version = "0.1.0"
 | 
				
			||||||
@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					#.########################################################################################################################
 | 
				
			||||||
 | 
					#<..<^>vv^.>>>^.>v.^v<.^<>><^v><vv.>v^v><><^<<.<..^^.<v>.^>v>><>^>><vv^^<><v>>vv><v>v.<^v>v<^v^>.^<^^<<><<<v<<><>^vv^>.^>#
 | 
				
			||||||
 | 
					#<>><>^^<.<v^v^.<<>^<v^^<><><v.^>^^>^^><^><^>v>v>v>>>^><<<>>v<>v>^v>>^v>v<<<.>^<<<<<>>v<<>^v^>.<v>>>v<<<vv<<v.^v^^^^^..>>#
 | 
				
			||||||
 | 
					#>.^>.><vv>v<><^^>..^....v>^^>>^v><<v.^><<<<^<^v><.v<.>..<>.>^v^^^.>^<v>^><^<v<><vv<vv^>v^^v<<....>^>v><<>v>^<v>>^>v^^v><#
 | 
				
			||||||
 | 
					#<^<v^v<<>>^>v>.<^<.v<<<>^>vv^<<v^>vvv<v><^vv^v^<>vv<vv..^>^<><<<vv^.>>v<>v.vvv.>>v^><v>><<<>^^v><^^v^^v^^v>>v><<.>^vv.^<#
 | 
				
			||||||
 | 
					#>>^<v>><>.>>><><.<>v><<><>vvvv>^><>vv^>^<>^<>^^>><^^>.vvv<v>^<<vv^<^v<.^.v.<vvv<<v.>^><v^^v><^.>vvvv>^.vv<^><^.^<v>vvv<<#
 | 
				
			||||||
 | 
					#<v^<v^><>^<v^<<^^>.v.<^.v<>^^^^^>><^<..v<^v<>>.>>^><^v<^^v^>v^<v^v><.<^<.><^^<vv^><>^v^><.<>..^>v^.v>.^<><>^.^v><>>>>^.<#
 | 
				
			||||||
 | 
					#><^><v.>^<^.^<^.v<v^<>v>.>v^<.>.<>.v<>>v^><><<<v^.<><<^<v<<.>vv<<.v^<>><.^<^..^^><v>.v^<<<>^.<v^..<v<<<>v^<>^<v><.^<<>><#
 | 
				
			||||||
 | 
					#<>vvv.v.<^<>^v.v<vv>><^^.>^>^<^v.v>>v<^^^<^<^^v.^.><<<>.<<>>^>>^<>.^>v<^.v.vv^v^^^..><v^v<^>.<v.^<>v<v><.vv<>.>>>>.^><><#
 | 
				
			||||||
 | 
					#<>v<v^<v<v>.^><vv><<<<>>.<<^v>.>v^<>^v>^>>.v.>>^.v^<v^vv^^.^v>^^><^<<<^^.^v<v..v<vv>^^>^vv<<>>>.><.^^<<^^<<.<<><^<^^.v><#
 | 
				
			||||||
 | 
					#>>><<v^^v<^<^.<<.>v><v^^><v^<>^v<^^v^vv><^.v..v.v.>vv><<^...><^v>><v^v<<v^^<v>^<><<vv>>^>>^><v>^^<>>>.<^^>.v^^^.><>v<>.<#
 | 
				
			||||||
 | 
					#><^^^v<><<<^v>^^><vv<vv>^<<>>.<^^vvv<<>^v^<.<><v<<>^v^..v>v<.<^^v><^<<v^v<><<^<v>v.><>v<v.>v><^vvv>^v^<v>.^<.>vvvvv<>><>#
 | 
				
			||||||
 | 
					#>^<>^v^^v<^vvvvv^<v>v.<<>v>>>^<^^<..>^<^<^.>v<vvvv^^><>^>^>><>v.vvv.^^v.^^>^<>>^^v<>v<<<^^.>>^>>^><v^^.<<v<>.>>><><><v.<#
 | 
				
			||||||
 | 
					#>^^^>>^>><<^<v>^^>>v<>>>>^v<v<.vvv<<><^^>.><vv<^.><<^>^<vv..^><v<..<>^^<.<>v<^><><>>>v>.>.>vv>.v<.<^^<v^>>>vv^<v^>v>>vv>#
 | 
				
			||||||
 | 
					#>>.<v>>.vv>^>><vvv<><^>^.^v>^v<>..<>^^.><v>..vv<^v>>^.vvv>>^^<vvvvvvv>^vv^^v>^<^.<v<>><<<vv^<>v^<<>><^v>>^>^^.v^<^^<>><>#
 | 
				
			||||||
 | 
					#<^>^>v<^<v^<^.<v^^<v.>.v^vv^^v>^^v>v^^vv^v^vv>^.><.v<.<><>v<v<>^<v...<><><<<<>.v^v^<<>^<<>>>>>><.^^^<><<><v^>^v^^<v<^v<>#
 | 
				
			||||||
 | 
					#.<^^>>v<v<><^^<vv<<v><^>>>>.vvv^>^^<v<<>><<v^>^><.<><vv.v<vv^<><v>v^^<v^<.>v<vv>v^v<^>>^<vv^><.<v>>^<v>>><^<^<v^>><<..v>#
 | 
				
			||||||
 | 
					#<.>>^.v^.^.v^v<>v>v>v^vv^^<^<<>^^><<><.v<>><v<<<vv^<<..v<v.<>^>vv^^>>v<><v^^><^^<>^v<<vv<v>vv.vvv>v<.^v^.^><><v.>v>>vvv>#
 | 
				
			||||||
 | 
					#<>^.v<^v>>>v>v<>^>v^<vv<<^v<<^^>vv<^<.^v.<v<vvv>vv^>.v..>>.>vv>>>v^.^^>>^>>><><><>v>>..<^.>^v<^^v^<>>><v>.^^<^<.v>^>vvv>#
 | 
				
			||||||
 | 
					#<^.v^<><<..^^v<v^>v>>>^vv.><v>^<>v^v^v^.>^<v><^<.>>^v><^^v>>^<<<..v<^>v>^vv>^vv^>^v.>>^<<^^>.><v<vv><v^.^<>>^>^>^^v<vvv<#
 | 
				
			||||||
 | 
					#>v.<^v^>>>.>>><^>>v^^^.vv.<<^v^.>v>><^>v.v><^<vvvv><<>v>v^<v^^v.<>vv.v<.><><>.^v>.>>>^<>.^>^>v.<v>^v^>v^<><.<<<^<^><^^^<#
 | 
				
			||||||
 | 
					#>^<>v>v>.>><>.><..vvvv<>vv<<^^v<>v<v^^vv.^<<v<v<<<<v<>><^<><<^v>^v<<<v<^v^<..vv<<<<<^.^v^>.<v^><<^^<.v>.<<<v<><>vvv.v<v<#
 | 
				
			||||||
 | 
					#<^^<<^<<.^>><v<v.^<^^<>>v^v.>^<>>.<<^v.^^v<^^v.^<.v<<>...<<<<^^^v^.<.>^^<>>^>v^^<v<vv^>^^<^v^<><^<<^^.^^<^vv^v<<^^<^<.^>#
 | 
				
			||||||
 | 
					#<^.^^.<.<<^v^<..><.^v<<>v.<^vv><<v<vv<vvv^<^^>v<v>>>v><<^.<.>^>v>>>.<><v<.vv<^^><.>^v>>v^v<.^^>.v^v>^><^^v^v>>vv>^.v<>^>#
 | 
				
			||||||
 | 
					#.>^.v<.>>^<><^>v><.<>>^^vv^.<.>.v>>v.>^><<..v<>v>v>>v><>v^^<^>^<<>^.<<<v^>^>v<v.>.>v^<vv^vv<^^<<<<.v^.<v.^v>>v<v^^.>v<>>#
 | 
				
			||||||
 | 
					#<><.^^^^<>>.<^v.>^<<>v>.<v>>>vv^^<>v^v<^.<.v^v>>>>^><^vvv.>>>v<<<.^^.v<vv^>.^v.><<.v<>>>^.^v>^vvv.<>v^<^v^<^v<^<><^^^v^<#
 | 
				
			||||||
 | 
					########################################################################################################################.#
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										296
									
								
								d24/src/a1.rs
									
									
									
									
									
								
							
							
						
						
									
										296
									
								
								d24/src/a1.rs
									
									
									
									
									
								
							@@ -1,4 +1,300 @@
 | 
				
			|||||||
 | 
					use std::{collections::HashSet, ops::Sub};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[derive(PartialEq, Eq, Clone, Copy, Hash, Debug)]
 | 
				
			||||||
 | 
					struct Pos(usize, usize); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[derive(Debug)]
 | 
				
			||||||
 | 
					enum Direction {
 | 
				
			||||||
 | 
					    UP,
 | 
				
			||||||
 | 
					    DOWN,
 | 
				
			||||||
 | 
					    LEFT, 
 | 
				
			||||||
 | 
					    RIGHT, 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct Blizzard {
 | 
				
			||||||
 | 
					    pos :Pos,
 | 
				
			||||||
 | 
					    future_pos :Pos, 
 | 
				
			||||||
 | 
					    dir :Direction, 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					impl Blizzard {
 | 
				
			||||||
 | 
					    fn from(x :usize, y :usize, dir :Direction) -> Self {  
 | 
				
			||||||
 | 
					        Blizzard { pos: Pos(x, y), future_pos: Pos(0, 0), dir: dir }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct Player {
 | 
				
			||||||
 | 
					    pos :Pos, 
 | 
				
			||||||
 | 
					    future_pos :Pos, 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					impl Player {
 | 
				
			||||||
 | 
					    fn from(x: usize, y: usize) -> Self {
 | 
				
			||||||
 | 
					        Player { pos: Pos(x, y), future_pos: Pos(0, 0) }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn parse_inp(inp :&Vec<String>) -> (Pos, Pos, Vec<Blizzard>, Player, Pos) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // find Walls 
 | 
				
			||||||
 | 
					    let mut min = Pos(usize::MAX, usize::MAX); 
 | 
				
			||||||
 | 
					    let mut max = Pos(usize::MIN, usize::MIN); 
 | 
				
			||||||
 | 
					    for line in inp.iter().enumerate() {
 | 
				
			||||||
 | 
					        for c in line.1.char_indices() {
 | 
				
			||||||
 | 
					            if c.1 == '#' {
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					                if c.0 < min.0 {
 | 
				
			||||||
 | 
					                    min.0 = c.0; 
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if c.0 > max.0 {
 | 
				
			||||||
 | 
					                    max.0 = c.0; 
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if line.0 < min.1 {
 | 
				
			||||||
 | 
					                    min.1 = line.0; 
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if line.0 > max.1 {
 | 
				
			||||||
 | 
					                    max.1 = line.0; 
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // find blizards
 | 
				
			||||||
 | 
					    let mut blizzards = vec![]; 
 | 
				
			||||||
 | 
					    for line in inp.iter().enumerate() {
 | 
				
			||||||
 | 
					        for c in line.1.char_indices() {
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            match c.1 {
 | 
				
			||||||
 | 
					                '<' => { blizzards.push(Blizzard::from(c.0, line.0, Direction::LEFT)) }
 | 
				
			||||||
 | 
					                '>' => { blizzards.push(Blizzard::from(c.0, line.0, Direction::RIGHT)) }
 | 
				
			||||||
 | 
					                'v' => { blizzards.push(Blizzard::from(c.0, line.0, Direction::DOWN)) }
 | 
				
			||||||
 | 
					                '^' => { blizzards.push(Blizzard::from(c.0, line.0, Direction::UP)) }
 | 
				
			||||||
 | 
					                _ => {}
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    let player_x = inp.first().unwrap().chars().position(|c| c == '.').unwrap(); 
 | 
				
			||||||
 | 
					    let player = Player::from(player_x, 0); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let goal_x = inp.last().unwrap().chars().position(|c| c == '.').unwrap(); 
 | 
				
			||||||
 | 
					    let goal = Pos(goal_x, inp.len() - 1); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    (min, max, blizzards, player, goal)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn advance_blizzards(blizzards :&mut Vec<Blizzard>, min :&Pos, max :&Pos) {
 | 
				
			||||||
 | 
					    for blizzard in blizzards {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        let future_pos = {
 | 
				
			||||||
 | 
					            match blizzard.dir {
 | 
				
			||||||
 | 
					                Direction::DOWN => {
 | 
				
			||||||
 | 
					                    let mut p = blizzard.pos;
 | 
				
			||||||
 | 
					                    p.1 += 1; 
 | 
				
			||||||
 | 
					                    if p.1 >= max.1 {
 | 
				
			||||||
 | 
					                        p.1 = min.1 + 1; 
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    p
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                Direction::UP => {
 | 
				
			||||||
 | 
					                    let mut p = blizzard.pos;
 | 
				
			||||||
 | 
					                    match p.1.checked_sub(1) {
 | 
				
			||||||
 | 
					                        Some(i) => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            if i <= min.1 {
 | 
				
			||||||
 | 
					                                p.1 = max.1 - 1; 
 | 
				
			||||||
 | 
					                            } else {
 | 
				
			||||||
 | 
					                                p.1 = i; 
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        None => {
 | 
				
			||||||
 | 
					                            p.1 = max.1 - 1; 
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    p
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					                Direction::RIGHT => {
 | 
				
			||||||
 | 
					                    let mut p = blizzard.pos;
 | 
				
			||||||
 | 
					                    p.0 += 1; 
 | 
				
			||||||
 | 
					                    if p.0 >= max.0 {
 | 
				
			||||||
 | 
					                        p.0 = min.0 + 1; 
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    p
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					                Direction::LEFT => {
 | 
				
			||||||
 | 
					                    let mut p = blizzard.pos;
 | 
				
			||||||
 | 
					                    match p.0.checked_sub(1) {
 | 
				
			||||||
 | 
					                        Some(i) => {
 | 
				
			||||||
 | 
					                            if i <= min.0 {
 | 
				
			||||||
 | 
					                                p.0 = max.0 - 1; 
 | 
				
			||||||
 | 
					                            } else {
 | 
				
			||||||
 | 
					                                p.0 = i; 
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        None => {
 | 
				
			||||||
 | 
					                            p.0 = max.0 - 1; 
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    
 | 
				
			||||||
 | 
					                    p
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //println!("blizzard {:?} with dir {:?} moved to position {:?}", blizzard.pos, blizzard.dir, future_pos); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        blizzard.pos = future_pos; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn find_shortest_path(start :&Pos, goal :&Pos, min :&Pos, max :&Pos, blizzards :&mut Vec<Blizzard>) -> i32 {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // positions that need to be evaluated in this round
 | 
				
			||||||
 | 
					    let mut positions :Vec<Pos> = vec![ *start ]; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let mut elapsed_time = 0; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    loop {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        elapsed_time += 1; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // find future positions 
 | 
				
			||||||
 | 
					        advance_blizzards(blizzards, &min, &max); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // look from the current position to all 4 possible directions AND the current Tile
 | 
				
			||||||
 | 
					        // if no blizzard future_position is there then add it to positions 
 | 
				
			||||||
 | 
					        let mut position_candidates :HashSet<Pos> = HashSet::new(); 
 | 
				
			||||||
 | 
					        for p in &positions {
 | 
				
			||||||
 | 
					            position_candidates.insert(*p); // stand still 
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            if p.1 > min.1 && p.1 < max.1 {
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					                if p.0 + 1 < max.0 {
 | 
				
			||||||
 | 
					                    position_candidates.insert(Pos(p.0 + 1, p.1)); // go right 
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					                if p.0 > min.0 + 1 {
 | 
				
			||||||
 | 
					                    position_candidates.insert(Pos(p.0 - 1, p.1)); // go left
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            } 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if p.0 > min.0 && p.0 < max.0 {
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					                if (p.1 + 1 < max.1) || (p.0 == goal.0 && (p.1+1) == goal.1) {
 | 
				
			||||||
 | 
					                    position_candidates.insert(Pos(p.0, p.1 + 1)); // go down
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					                if (p.1 > min.1 + 1) || (p.0 == goal.0 && (p.1-1) == goal.1) {
 | 
				
			||||||
 | 
					                    position_candidates.insert(Pos(p.0, p.1 - 1)); // go up
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        blizzards.iter().for_each(|blizzard| {
 | 
				
			||||||
 | 
					            //if position_candidates.contains(&blizzard.pos) {
 | 
				
			||||||
 | 
					            position_candidates.remove(&blizzard.pos); 
 | 
				
			||||||
 | 
					                //println!("{}: Removed {:?}", elapsed_time, blizzard.pos); 
 | 
				
			||||||
 | 
					            //}
 | 
				
			||||||
 | 
					        }); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // add all valid future positions to the future position vector with its time
 | 
				
			||||||
 | 
					        positions.clear(); 
 | 
				
			||||||
 | 
					        for p in position_candidates {
 | 
				
			||||||
 | 
					            if p == *goal {
 | 
				
			||||||
 | 
					                return elapsed_time; 
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            positions.push(p); 
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //println!("{}: ", elapsed_time); 
 | 
				
			||||||
 | 
					        //print_board(min, max, blizzards, &player.pos); 
 | 
				
			||||||
 | 
					        //println!("{}: {:?}", elapsed_time, positions); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //if elapsed_time > 20 { return 0; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {
 | 
				
			||||||
 | 
					    let mut map = vec![vec!['.'; max.0 + 1]; max.1 + 1];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for i in 0..=max.1 {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        map[i][0] = '#'; 
 | 
				
			||||||
 | 
					        map[i][max.0] = '#'; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for i2 in 0..=max.0 {
 | 
				
			||||||
 | 
					        map[0][i2] = '#'; 
 | 
				
			||||||
 | 
					        map[max.1][i2] = '#'; 
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for b in blizzards {
 | 
				
			||||||
 | 
					        if map[b.pos.1][b.pos.0] != '.' {
 | 
				
			||||||
 | 
					            map[b.pos.1][b.pos.0] = '2'; 
 | 
				
			||||||
 | 
					            continue; 
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        match b.dir {
 | 
				
			||||||
 | 
					            Direction::DOWN => {
 | 
				
			||||||
 | 
					                map[b.pos.1][b.pos.0] = 'v'; 
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            Direction::UP => {
 | 
				
			||||||
 | 
					                map[b.pos.1][b.pos.0] = '^'; 
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            Direction::RIGHT => {
 | 
				
			||||||
 | 
					                map[b.pos.1][b.pos.0] = '>'; 
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            Direction::LEFT => {
 | 
				
			||||||
 | 
					                map[b.pos.1][b.pos.0] = '<'; 
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if map[player.1][player.0] != '.' {
 | 
				
			||||||
 | 
					        println!("ERROR!!!!!!!!!!!!"); 
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    map[player.1][player.0] = 'E'; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for l in map {
 | 
				
			||||||
 | 
					        for c in l {
 | 
				
			||||||
 | 
					            print!("{}", c); 
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        println!(); 
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    println!(); 
 | 
				
			||||||
 | 
					} 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub fn run(inp :Vec<String>) {
 | 
					pub fn run(inp :Vec<String>) {
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    // parse input
 | 
				
			||||||
 | 
					    let (min, max, mut blizzards, player, goal) = parse_inp(&inp); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    print_board(&min, &max, &blizzards, &player.pos); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let time = find_shortest_path(&player.pos, &goal, &min, &max, &mut blizzards); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    println!("a1: {}", time); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
							
								
								
									
										296
									
								
								d24/src/a2.rs
									
									
									
									
									
								
							
							
						
						
									
										296
									
								
								d24/src/a2.rs
									
									
									
									
									
								
							@@ -1,5 +1,301 @@
 | 
				
			|||||||
 | 
					use std::{collections::HashSet, ops::Sub};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[derive(PartialEq, Eq, Clone, Copy, Hash, Debug)]
 | 
				
			||||||
 | 
					struct Pos(usize, usize); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[derive(Debug)]
 | 
				
			||||||
 | 
					enum Direction {
 | 
				
			||||||
 | 
					    UP,
 | 
				
			||||||
 | 
					    DOWN,
 | 
				
			||||||
 | 
					    LEFT, 
 | 
				
			||||||
 | 
					    RIGHT, 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct Blizzard {
 | 
				
			||||||
 | 
					    pos :Pos,
 | 
				
			||||||
 | 
					    future_pos :Pos, 
 | 
				
			||||||
 | 
					    dir :Direction, 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					impl Blizzard {
 | 
				
			||||||
 | 
					    fn from(x :usize, y :usize, dir :Direction) -> Self {  
 | 
				
			||||||
 | 
					        Blizzard { pos: Pos(x, y), future_pos: Pos(0, 0), dir: dir }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct Player {
 | 
				
			||||||
 | 
					    pos :Pos, 
 | 
				
			||||||
 | 
					    future_pos :Pos, 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					impl Player {
 | 
				
			||||||
 | 
					    fn from(x: usize, y: usize) -> Self {
 | 
				
			||||||
 | 
					        Player { pos: Pos(x, y), future_pos: Pos(0, 0) }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn parse_inp(inp :&Vec<String>) -> (Pos, Pos, Vec<Blizzard>, Player, Pos) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // find Walls 
 | 
				
			||||||
 | 
					    let mut min = Pos(usize::MAX, usize::MAX); 
 | 
				
			||||||
 | 
					    let mut max = Pos(usize::MIN, usize::MIN); 
 | 
				
			||||||
 | 
					    for line in inp.iter().enumerate() {
 | 
				
			||||||
 | 
					        for c in line.1.char_indices() {
 | 
				
			||||||
 | 
					            if c.1 == '#' {
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					                if c.0 < min.0 {
 | 
				
			||||||
 | 
					                    min.0 = c.0; 
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if c.0 > max.0 {
 | 
				
			||||||
 | 
					                    max.0 = c.0; 
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if line.0 < min.1 {
 | 
				
			||||||
 | 
					                    min.1 = line.0; 
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if line.0 > max.1 {
 | 
				
			||||||
 | 
					                    max.1 = line.0; 
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // find blizards
 | 
				
			||||||
 | 
					    let mut blizzards = vec![]; 
 | 
				
			||||||
 | 
					    for line in inp.iter().enumerate() {
 | 
				
			||||||
 | 
					        for c in line.1.char_indices() {
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            match c.1 {
 | 
				
			||||||
 | 
					                '<' => { blizzards.push(Blizzard::from(c.0, line.0, Direction::LEFT)) }
 | 
				
			||||||
 | 
					                '>' => { blizzards.push(Blizzard::from(c.0, line.0, Direction::RIGHT)) }
 | 
				
			||||||
 | 
					                'v' => { blizzards.push(Blizzard::from(c.0, line.0, Direction::DOWN)) }
 | 
				
			||||||
 | 
					                '^' => { blizzards.push(Blizzard::from(c.0, line.0, Direction::UP)) }
 | 
				
			||||||
 | 
					                _ => {}
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    let player_x = inp.first().unwrap().chars().position(|c| c == '.').unwrap(); 
 | 
				
			||||||
 | 
					    let player = Player::from(player_x, 0); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let goal_x = inp.last().unwrap().chars().position(|c| c == '.').unwrap(); 
 | 
				
			||||||
 | 
					    let goal = Pos(goal_x, inp.len() - 1); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    (min, max, blizzards, player, goal)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn advance_blizzards(blizzards :&mut Vec<Blizzard>, min :&Pos, max :&Pos) {
 | 
				
			||||||
 | 
					    for blizzard in blizzards {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        let future_pos = {
 | 
				
			||||||
 | 
					            match blizzard.dir {
 | 
				
			||||||
 | 
					                Direction::DOWN => {
 | 
				
			||||||
 | 
					                    let mut p = blizzard.pos;
 | 
				
			||||||
 | 
					                    p.1 += 1; 
 | 
				
			||||||
 | 
					                    if p.1 >= max.1 {
 | 
				
			||||||
 | 
					                        p.1 = min.1 + 1; 
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    p
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                Direction::UP => {
 | 
				
			||||||
 | 
					                    let mut p = blizzard.pos;
 | 
				
			||||||
 | 
					                    match p.1.checked_sub(1) {
 | 
				
			||||||
 | 
					                        Some(i) => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            if i <= min.1 {
 | 
				
			||||||
 | 
					                                p.1 = max.1 - 1; 
 | 
				
			||||||
 | 
					                            } else {
 | 
				
			||||||
 | 
					                                p.1 = i; 
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        None => {
 | 
				
			||||||
 | 
					                            p.1 = max.1 - 1; 
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    p
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					                Direction::RIGHT => {
 | 
				
			||||||
 | 
					                    let mut p = blizzard.pos;
 | 
				
			||||||
 | 
					                    p.0 += 1; 
 | 
				
			||||||
 | 
					                    if p.0 >= max.0 {
 | 
				
			||||||
 | 
					                        p.0 = min.0 + 1; 
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    p
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					                Direction::LEFT => {
 | 
				
			||||||
 | 
					                    let mut p = blizzard.pos;
 | 
				
			||||||
 | 
					                    match p.0.checked_sub(1) {
 | 
				
			||||||
 | 
					                        Some(i) => {
 | 
				
			||||||
 | 
					                            if i <= min.0 {
 | 
				
			||||||
 | 
					                                p.0 = max.0 - 1; 
 | 
				
			||||||
 | 
					                            } else {
 | 
				
			||||||
 | 
					                                p.0 = i; 
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        None => {
 | 
				
			||||||
 | 
					                            p.0 = max.0 - 1; 
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    
 | 
				
			||||||
 | 
					                    p
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //println!("blizzard {:?} with dir {:?} moved to position {:?}", blizzard.pos, blizzard.dir, future_pos); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        blizzard.pos = future_pos; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn find_shortest_path(start :&Pos, goal :&Pos, min :&Pos, max :&Pos, blizzards :&mut Vec<Blizzard>) -> i32 {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // positions that need to be evaluated in this round
 | 
				
			||||||
 | 
					    let mut positions :Vec<Pos> = vec![ *start ]; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let mut elapsed_time = 0; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    loop {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        elapsed_time += 1; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // find future positions 
 | 
				
			||||||
 | 
					        advance_blizzards(blizzards, &min, &max); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // look from the current position to all 4 possible directions AND the current Tile
 | 
				
			||||||
 | 
					        // if no blizzard future_position is there then add it to positions 
 | 
				
			||||||
 | 
					        let mut position_candidates :HashSet<Pos> = HashSet::new(); 
 | 
				
			||||||
 | 
					        for p in &positions {
 | 
				
			||||||
 | 
					            position_candidates.insert(*p); // stand still 
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            if p.1 > min.1 && p.1 < max.1 {
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					                if p.0 + 1 < max.0 {
 | 
				
			||||||
 | 
					                    position_candidates.insert(Pos(p.0 + 1, p.1)); // go right 
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					                if p.0 > min.0 + 1 {
 | 
				
			||||||
 | 
					                    position_candidates.insert(Pos(p.0 - 1, p.1)); // go left
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            } 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if p.0 > min.0 && p.0 < max.0 {
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					                if (p.1 + 1 < max.1) || (p.0 == goal.0 && (p.1+1) == goal.1) {
 | 
				
			||||||
 | 
					                    position_candidates.insert(Pos(p.0, p.1 + 1)); // go down
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					                if (p.1 > min.1 + 1) || (p.0 == goal.0 && (p.1-1) == goal.1) {
 | 
				
			||||||
 | 
					                    position_candidates.insert(Pos(p.0, p.1 - 1)); // go up
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        blizzards.iter().for_each(|blizzard| {
 | 
				
			||||||
 | 
					            //if position_candidates.contains(&blizzard.pos) {
 | 
				
			||||||
 | 
					            position_candidates.remove(&blizzard.pos); 
 | 
				
			||||||
 | 
					                //println!("{}: Removed {:?}", elapsed_time, blizzard.pos); 
 | 
				
			||||||
 | 
					            //}
 | 
				
			||||||
 | 
					        }); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // add all valid future positions to the future position vector with its time
 | 
				
			||||||
 | 
					        positions.clear(); 
 | 
				
			||||||
 | 
					        for p in position_candidates {
 | 
				
			||||||
 | 
					            if p == *goal {
 | 
				
			||||||
 | 
					                return elapsed_time; 
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            positions.push(p); 
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //println!("{}: ", elapsed_time); 
 | 
				
			||||||
 | 
					        //print_board(min, max, blizzards, &player.pos); 
 | 
				
			||||||
 | 
					        //println!("{}: {:?}", elapsed_time, positions); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //if elapsed_time > 20 { return 0; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {
 | 
				
			||||||
 | 
					    let mut map = vec![vec!['.'; max.0 + 1]; max.1 + 1];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for i in 0..=max.1 {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        map[i][0] = '#'; 
 | 
				
			||||||
 | 
					        map[i][max.0] = '#'; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for i2 in 0..=max.0 {
 | 
				
			||||||
 | 
					        map[0][i2] = '#'; 
 | 
				
			||||||
 | 
					        map[max.1][i2] = '#'; 
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for b in blizzards {
 | 
				
			||||||
 | 
					        if map[b.pos.1][b.pos.0] != '.' {
 | 
				
			||||||
 | 
					            map[b.pos.1][b.pos.0] = '2'; 
 | 
				
			||||||
 | 
					            continue; 
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        match b.dir {
 | 
				
			||||||
 | 
					            Direction::DOWN => {
 | 
				
			||||||
 | 
					                map[b.pos.1][b.pos.0] = 'v'; 
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            Direction::UP => {
 | 
				
			||||||
 | 
					                map[b.pos.1][b.pos.0] = '^'; 
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            Direction::RIGHT => {
 | 
				
			||||||
 | 
					                map[b.pos.1][b.pos.0] = '>'; 
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            Direction::LEFT => {
 | 
				
			||||||
 | 
					                map[b.pos.1][b.pos.0] = '<'; 
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if map[player.1][player.0] != '.' {
 | 
				
			||||||
 | 
					        println!("ERROR!!!!!!!!!!!!"); 
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    map[player.1][player.0] = 'E'; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for l in map {
 | 
				
			||||||
 | 
					        for c in l {
 | 
				
			||||||
 | 
					            print!("{}", c); 
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        println!(); 
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    println!(); 
 | 
				
			||||||
 | 
					} 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub fn run(inp :Vec<String>) {
 | 
					pub fn run(inp :Vec<String>) {
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    // parse input
 | 
				
			||||||
 | 
					    let (min, max, mut blizzards, player, goal) = parse_inp(&inp); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    print_board(&min, &max, &blizzards, &player.pos); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    let time1 = find_shortest_path(&player.pos, &goal, &min, &max, &mut blizzards); 
 | 
				
			||||||
 | 
					    let time2 = find_shortest_path(&goal, &player.pos, &min, &max, &mut blizzards); 
 | 
				
			||||||
 | 
					    let time3 = find_shortest_path(&player.pos, &goal, &min, &max, &mut blizzards); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    println!("a1: {}", time1 + time2 + time3); 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
							
								
								
									
										1
									
								
								d24/target/.rustc_info.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								d24/target/.rustc_info.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					{"rustc_fingerprint":15594459422025777716,"outputs":{"8204103499295538959":{"success":true,"status":"","code":0,"stdout":"___.exe\nlib___.rlib\n___.dll\n___.dll\n___.lib\n___.dll\nC:\\Users\\tfuec\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"msvc\"\ntarget_family=\"windows\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"windows\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"pc\"\nwindows\n","stderr":""},"10376369925670944939":{"success":true,"status":"","code":0,"stdout":"___.exe\nlib___.rlib\n___.dll\n___.dll\n___.lib\n___.dll\nC:\\Users\\tfuec\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"msvc\"\ntarget_family=\"windows\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"windows\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"pc\"\nwindows\n","stderr":""},"15697416045686424142":{"success":true,"status":"","code":0,"stdout":"___.exe\nlib___.rlib\n___.dll\n___.dll\n___.lib\n___.dll\n","stderr":""},"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.65.0 (897e37553 2022-11-02)\nbinary: rustc\ncommit-hash: 897e37553bba8b42751c67658967889d11ecd120\ncommit-date: 2022-11-02\nhost: x86_64-pc-windows-msvc\nrelease: 1.65.0\nLLVM version: 15.0.0\n","stderr":""},"8623966523033996810":{"success":true,"status":"","code":0,"stdout":"___.exe\nlib___.rlib\n___.dll\n___.dll\n___.lib\n___.dll\n","stderr":""}},"successes":{}}
 | 
				
			||||||
							
								
								
									
										3
									
								
								d24/target/CACHEDIR.TAG
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								d24/target/CACHEDIR.TAG
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					Signature: 8a477f597d28d172789f06886806bc55
 | 
				
			||||||
 | 
					# This file is a cache directory tag created by cargo.
 | 
				
			||||||
 | 
					# For information about cache directory tags see https://bford.info/cachedir/
 | 
				
			||||||
							
								
								
									
										0
									
								
								d24/target/debug/.cargo-lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								d24/target/debug/.cargo-lock
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					a62220af2acc103e
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					{"rustc":2347157018072859861,"features":"[]","target":16997346216964277088,"profile":7309141686862299243,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug\\.fingerprint\\d05-54bad1502471c435\\dep-bin-d05"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0}
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								d24/target/debug/.fingerprint/d05-54bad1502471c435/dep-bin-d05
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								d24/target/debug/.fingerprint/d05-54bad1502471c435/dep-bin-d05
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					This file has an mtime of when this was started.
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{"message":"unused import: `ops::Sub`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src\\a1.rs","byte_start":32,"byte_end":40,"line_start":1,"line_end":1,"column_start":33,"column_end":41,"is_primary":true,"text":[{"text":"use std::{collections::HashSet, ops::Sub};","highlight_start":33,"highlight_end":41}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src\\a1.rs","byte_start":30,"byte_end":40,"line_start":1,"line_end":1,"column_start":31,"column_end":41,"is_primary":true,"text":[{"text":"use std::{collections::HashSet, ops::Sub};","highlight_start":31,"highlight_end":41}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: unused import: `ops::Sub`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a1.rs:1:33\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::{collections::HashSet, ops::Sub};\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m                                \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^^^^^^\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m= \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"unused import: `ops::Sub`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src\\a2.rs","byte_start":32,"byte_end":40,"line_start":1,"line_end":1,"column_start":33,"column_end":41,"is_primary":true,"text":[{"text":"use std::{collections::HashSet, ops::Sub};","highlight_start":33,"highlight_end":41}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src\\a2.rs","byte_start":30,"byte_end":40,"line_start":1,"line_end":1,"column_start":31,"column_end":41,"is_primary":true,"text":[{"text":"use std::{collections::HashSet, ops::Sub};","highlight_start":31,"highlight_end":41}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: unused import: `ops::Sub`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a2.rs:1:33\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::{collections::HashSet, ops::Sub};\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m                                \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^^^^^^\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"unused variable: `min`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src\\a1.rs","byte_start":6797,"byte_end":6800,"line_start":238,"line_end":238,"column_start":16,"column_end":19,"is_primary":true,"text":[{"text":"fn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {","highlight_start":16,"highlight_end":19}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_variables)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"if this is intentional, prefix it with an underscore","code":null,"level":"help","spans":[{"file_name":"src\\a1.rs","byte_start":6797,"byte_end":6800,"line_start":238,"line_end":238,"column_start":16,"column_end":19,"is_primary":true,"text":[{"text":"fn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {","highlight_start":16,"highlight_end":19}],"label":null,"suggested_replacement":"_min","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: unused variable: `min`\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a1.rs:238:16\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m238\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mfn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m               \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11mhelp: if this is intentional, prefix it with an underscore: `_min`\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m= \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15mnote\u001b[0m\u001b[0m: `#[warn(unused_variables)]` on by default\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"unused variable: `min`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src\\a2.rs","byte_start":6795,"byte_end":6798,"line_start":237,"line_end":237,"column_start":16,"column_end":19,"is_primary":true,"text":[{"text":"fn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {","highlight_start":16,"highlight_end":19}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"if this is intentional, prefix it with an underscore","code":null,"level":"help","spans":[{"file_name":"src\\a2.rs","byte_start":6795,"byte_end":6798,"line_start":237,"line_end":237,"column_start":16,"column_end":19,"is_primary":true,"text":[{"text":"fn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {","highlight_start":16,"highlight_end":19}],"label":null,"suggested_replacement":"_min","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: unused variable: `min`\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a2.rs:237:16\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m237\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mfn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m               \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11mhelp: if this is intentional, prefix it with an underscore: `_min`\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"field `future_pos` is never read","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src\\a1.rs","byte_start":223,"byte_end":231,"line_start":15,"line_end":15,"column_start":8,"column_end":16,"is_primary":false,"text":[{"text":"struct Blizzard {","highlight_start":8,"highlight_end":16}],"label":"field in this struct","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src\\a1.rs","byte_start":254,"byte_end":264,"line_start":17,"line_end":17,"column_start":5,"column_end":15,"is_primary":true,"text":[{"text":"    future_pos :Pos, ","highlight_start":5,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(dead_code)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: field `future_pos` is never read\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a1.rs:17:5\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m15\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mstruct Blizzard {\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m       \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--------\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14mfield in this struct\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m16\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pos :Pos,\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m17\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    future_pos :Pos, \u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^^^^^^^^\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m= \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15mnote\u001b[0m\u001b[0m: `#[warn(dead_code)]` on by default\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"field `future_pos` is never read","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src\\a1.rs","byte_start":467,"byte_end":473,"line_start":27,"line_end":27,"column_start":8,"column_end":14,"is_primary":false,"text":[{"text":"struct Player {","highlight_start":8,"highlight_end":14}],"label":"field in this struct","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src\\a1.rs","byte_start":497,"byte_end":507,"line_start":29,"line_end":29,"column_start":5,"column_end":15,"is_primary":true,"text":[{"text":"    future_pos :Pos, ","highlight_start":5,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: field `future_pos` is never read\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a1.rs:29:5\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m27\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mstruct Player {\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m       \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m------\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14mfield in this struct\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m28\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pos :Pos, \u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m29\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    future_pos :Pos, \u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^^^^^^^^\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"field `future_pos` is never read","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src\\a2.rs","byte_start":223,"byte_end":231,"line_start":15,"line_end":15,"column_start":8,"column_end":16,"is_primary":false,"text":[{"text":"struct Blizzard {","highlight_start":8,"highlight_end":16}],"label":"field in this struct","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src\\a2.rs","byte_start":254,"byte_end":264,"line_start":17,"line_end":17,"column_start":5,"column_end":15,"is_primary":true,"text":[{"text":"    future_pos :Pos, ","highlight_start":5,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: field `future_pos` is never read\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a2.rs:17:5\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m15\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mstruct Blizzard {\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m       \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--------\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14mfield in this struct\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m16\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pos :Pos,\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m17\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    future_pos :Pos, \u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^^^^^^^^\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"field `future_pos` is never read","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src\\a2.rs","byte_start":467,"byte_end":473,"line_start":27,"line_end":27,"column_start":8,"column_end":14,"is_primary":false,"text":[{"text":"struct Player {","highlight_start":8,"highlight_end":14}],"label":"field in this struct","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src\\a2.rs","byte_start":497,"byte_end":507,"line_start":29,"line_end":29,"column_start":5,"column_end":15,"is_primary":true,"text":[{"text":"    future_pos :Pos, ","highlight_start":5,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: field `future_pos` is never read\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a2.rs:29:5\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m27\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mstruct Player {\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m       \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m------\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14mfield in this struct\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m28\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pos :Pos, \u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m29\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    future_pos :Pos, \u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^^^^^^^^\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"8 warnings emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: 8 warnings emitted\u001b[0m\n\n"}
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					e737b342d3e62e08
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					{"rustc":2347157018072859861,"features":"[]","target":16997346216964277088,"profile":9251013656241001069,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug\\.fingerprint\\d05-60235cbe9d69ff8a\\dep-bin-d05"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0}
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								d24/target/debug/.fingerprint/d05-60235cbe9d69ff8a/dep-bin-d05
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								d24/target/debug/.fingerprint/d05-60235cbe9d69ff8a/dep-bin-d05
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					This file has an mtime of when this was started.
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{"message":"unused import: `ops::Sub`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src\\a1.rs","byte_start":32,"byte_end":40,"line_start":1,"line_end":1,"column_start":33,"column_end":41,"is_primary":true,"text":[{"text":"use std::{collections::HashSet, ops::Sub};","highlight_start":33,"highlight_end":41}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src\\a1.rs","byte_start":30,"byte_end":40,"line_start":1,"line_end":1,"column_start":31,"column_end":41,"is_primary":true,"text":[{"text":"use std::{collections::HashSet, ops::Sub};","highlight_start":31,"highlight_end":41}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: unused import: `ops::Sub`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a1.rs:1:33\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::{collections::HashSet, ops::Sub};\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m                                \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^^^^^^\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m= \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"unused import: `ops::Sub`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src\\a2.rs","byte_start":32,"byte_end":40,"line_start":1,"line_end":1,"column_start":33,"column_end":41,"is_primary":true,"text":[{"text":"use std::{collections::HashSet, ops::Sub};","highlight_start":33,"highlight_end":41}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src\\a2.rs","byte_start":30,"byte_end":40,"line_start":1,"line_end":1,"column_start":31,"column_end":41,"is_primary":true,"text":[{"text":"use std::{collections::HashSet, ops::Sub};","highlight_start":31,"highlight_end":41}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: unused import: `ops::Sub`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a2.rs:1:33\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::{collections::HashSet, ops::Sub};\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m                                \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^^^^^^\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"unused variable: `min`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src\\a1.rs","byte_start":6797,"byte_end":6800,"line_start":238,"line_end":238,"column_start":16,"column_end":19,"is_primary":true,"text":[{"text":"fn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {","highlight_start":16,"highlight_end":19}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_variables)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"if this is intentional, prefix it with an underscore","code":null,"level":"help","spans":[{"file_name":"src\\a1.rs","byte_start":6797,"byte_end":6800,"line_start":238,"line_end":238,"column_start":16,"column_end":19,"is_primary":true,"text":[{"text":"fn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {","highlight_start":16,"highlight_end":19}],"label":null,"suggested_replacement":"_min","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: unused variable: `min`\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a1.rs:238:16\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m238\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mfn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m               \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11mhelp: if this is intentional, prefix it with an underscore: `_min`\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m= \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15mnote\u001b[0m\u001b[0m: `#[warn(unused_variables)]` on by default\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"unused variable: `min`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src\\a2.rs","byte_start":6795,"byte_end":6798,"line_start":237,"line_end":237,"column_start":16,"column_end":19,"is_primary":true,"text":[{"text":"fn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {","highlight_start":16,"highlight_end":19}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"if this is intentional, prefix it with an underscore","code":null,"level":"help","spans":[{"file_name":"src\\a2.rs","byte_start":6795,"byte_end":6798,"line_start":237,"line_end":237,"column_start":16,"column_end":19,"is_primary":true,"text":[{"text":"fn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {","highlight_start":16,"highlight_end":19}],"label":null,"suggested_replacement":"_min","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: unused variable: `min`\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a2.rs:237:16\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m237\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mfn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m               \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11mhelp: if this is intentional, prefix it with an underscore: `_min`\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"field `future_pos` is never read","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src\\a1.rs","byte_start":223,"byte_end":231,"line_start":15,"line_end":15,"column_start":8,"column_end":16,"is_primary":false,"text":[{"text":"struct Blizzard {","highlight_start":8,"highlight_end":16}],"label":"field in this struct","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src\\a1.rs","byte_start":254,"byte_end":264,"line_start":17,"line_end":17,"column_start":5,"column_end":15,"is_primary":true,"text":[{"text":"    future_pos :Pos, ","highlight_start":5,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(dead_code)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: field `future_pos` is never read\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a1.rs:17:5\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m15\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mstruct Blizzard {\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m       \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--------\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14mfield in this struct\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m16\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pos :Pos,\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m17\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    future_pos :Pos, \u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^^^^^^^^\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m= \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15mnote\u001b[0m\u001b[0m: `#[warn(dead_code)]` on by default\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"field `future_pos` is never read","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src\\a1.rs","byte_start":467,"byte_end":473,"line_start":27,"line_end":27,"column_start":8,"column_end":14,"is_primary":false,"text":[{"text":"struct Player {","highlight_start":8,"highlight_end":14}],"label":"field in this struct","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src\\a1.rs","byte_start":497,"byte_end":507,"line_start":29,"line_end":29,"column_start":5,"column_end":15,"is_primary":true,"text":[{"text":"    future_pos :Pos, ","highlight_start":5,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: field `future_pos` is never read\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a1.rs:29:5\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m27\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mstruct Player {\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m       \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m------\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14mfield in this struct\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m28\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pos :Pos, \u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m29\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    future_pos :Pos, \u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^^^^^^^^\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"field `future_pos` is never read","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src\\a2.rs","byte_start":223,"byte_end":231,"line_start":15,"line_end":15,"column_start":8,"column_end":16,"is_primary":false,"text":[{"text":"struct Blizzard {","highlight_start":8,"highlight_end":16}],"label":"field in this struct","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src\\a2.rs","byte_start":254,"byte_end":264,"line_start":17,"line_end":17,"column_start":5,"column_end":15,"is_primary":true,"text":[{"text":"    future_pos :Pos, ","highlight_start":5,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: field `future_pos` is never read\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a2.rs:17:5\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m15\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mstruct Blizzard {\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m       \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--------\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14mfield in this struct\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m16\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pos :Pos,\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m17\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    future_pos :Pos, \u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^^^^^^^^\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"field `future_pos` is never read","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src\\a2.rs","byte_start":467,"byte_end":473,"line_start":27,"line_end":27,"column_start":8,"column_end":14,"is_primary":false,"text":[{"text":"struct Player {","highlight_start":8,"highlight_end":14}],"label":"field in this struct","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src\\a2.rs","byte_start":497,"byte_end":507,"line_start":29,"line_end":29,"column_start":5,"column_end":15,"is_primary":true,"text":[{"text":"    future_pos :Pos, ","highlight_start":5,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: field `future_pos` is never read\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a2.rs:29:5\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m27\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mstruct Player {\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m       \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m------\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14mfield in this struct\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m28\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pos :Pos, \u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m29\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    future_pos :Pos, \u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^^^^^^^^\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"8 warnings emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: 8 warnings emitted\u001b[0m\n\n"}
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					This file has an mtime of when this was started.
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{"message":"unused import: `ops::Sub`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src\\a1.rs","byte_start":32,"byte_end":40,"line_start":1,"line_end":1,"column_start":33,"column_end":41,"is_primary":true,"text":[{"text":"use std::{collections::HashSet, ops::Sub};","highlight_start":33,"highlight_end":41}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_imports)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src\\a1.rs","byte_start":30,"byte_end":40,"line_start":1,"line_end":1,"column_start":31,"column_end":41,"is_primary":true,"text":[{"text":"use std::{collections::HashSet, ops::Sub};","highlight_start":31,"highlight_end":41}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: unused import: `ops::Sub`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a1.rs:1:33\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::{collections::HashSet, ops::Sub};\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m                                \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^^^^^^\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m= \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15mnote\u001b[0m\u001b[0m: `#[warn(unused_imports)]` on by default\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"unused import: `ops::Sub`","code":{"code":"unused_imports","explanation":null},"level":"warning","spans":[{"file_name":"src\\a2.rs","byte_start":32,"byte_end":40,"line_start":1,"line_end":1,"column_start":33,"column_end":41,"is_primary":true,"text":[{"text":"use std::{collections::HashSet, ops::Sub};","highlight_start":33,"highlight_end":41}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"remove the unused import","code":null,"level":"help","spans":[{"file_name":"src\\a2.rs","byte_start":30,"byte_end":40,"line_start":1,"line_end":1,"column_start":31,"column_end":41,"is_primary":true,"text":[{"text":"use std::{collections::HashSet, ops::Sub};","highlight_start":31,"highlight_end":41}],"label":null,"suggested_replacement":"","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: unused import: `ops::Sub`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a2.rs:1:33\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m1\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0muse std::{collections::HashSet, ops::Sub};\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m                                \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^^^^^^\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"unused variable: `min`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src\\a1.rs","byte_start":6797,"byte_end":6800,"line_start":238,"line_end":238,"column_start":16,"column_end":19,"is_primary":true,"text":[{"text":"fn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {","highlight_start":16,"highlight_end":19}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_variables)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"if this is intentional, prefix it with an underscore","code":null,"level":"help","spans":[{"file_name":"src\\a1.rs","byte_start":6797,"byte_end":6800,"line_start":238,"line_end":238,"column_start":16,"column_end":19,"is_primary":true,"text":[{"text":"fn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {","highlight_start":16,"highlight_end":19}],"label":null,"suggested_replacement":"_min","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: unused variable: `min`\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a1.rs:238:16\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m238\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mfn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m               \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11mhelp: if this is intentional, prefix it with an underscore: `_min`\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m= \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15mnote\u001b[0m\u001b[0m: `#[warn(unused_variables)]` on by default\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"unused variable: `min`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src\\a2.rs","byte_start":6795,"byte_end":6798,"line_start":237,"line_end":237,"column_start":16,"column_end":19,"is_primary":true,"text":[{"text":"fn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {","highlight_start":16,"highlight_end":19}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"if this is intentional, prefix it with an underscore","code":null,"level":"help","spans":[{"file_name":"src\\a2.rs","byte_start":6795,"byte_end":6798,"line_start":237,"line_end":237,"column_start":16,"column_end":19,"is_primary":true,"text":[{"text":"fn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {","highlight_start":16,"highlight_end":19}],"label":null,"suggested_replacement":"_min","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: unused variable: `min`\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a2.rs:237:16\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m237\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mfn print_board(min :&Pos, max :&Pos, blizzards :&Vec<Blizzard>, player :&Pos) {\u001b[0m\n\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m               \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11mhelp: if this is intentional, prefix it with an underscore: `_min`\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"field `future_pos` is never read","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src\\a1.rs","byte_start":223,"byte_end":231,"line_start":15,"line_end":15,"column_start":8,"column_end":16,"is_primary":false,"text":[{"text":"struct Blizzard {","highlight_start":8,"highlight_end":16}],"label":"field in this struct","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src\\a1.rs","byte_start":254,"byte_end":264,"line_start":17,"line_end":17,"column_start":5,"column_end":15,"is_primary":true,"text":[{"text":"    future_pos :Pos, ","highlight_start":5,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(dead_code)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: field `future_pos` is never read\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a1.rs:17:5\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m15\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mstruct Blizzard {\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m       \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--------\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14mfield in this struct\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m16\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pos :Pos,\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m17\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    future_pos :Pos, \u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^^^^^^^^\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m= \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15mnote\u001b[0m\u001b[0m: `#[warn(dead_code)]` on by default\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"field `future_pos` is never read","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src\\a1.rs","byte_start":467,"byte_end":473,"line_start":27,"line_end":27,"column_start":8,"column_end":14,"is_primary":false,"text":[{"text":"struct Player {","highlight_start":8,"highlight_end":14}],"label":"field in this struct","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src\\a1.rs","byte_start":497,"byte_end":507,"line_start":29,"line_end":29,"column_start":5,"column_end":15,"is_primary":true,"text":[{"text":"    future_pos :Pos, ","highlight_start":5,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: field `future_pos` is never read\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a1.rs:29:5\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m27\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mstruct Player {\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m       \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m------\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14mfield in this struct\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m28\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pos :Pos, \u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m29\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    future_pos :Pos, \u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^^^^^^^^\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"field `future_pos` is never read","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src\\a2.rs","byte_start":223,"byte_end":231,"line_start":15,"line_end":15,"column_start":8,"column_end":16,"is_primary":false,"text":[{"text":"struct Blizzard {","highlight_start":8,"highlight_end":16}],"label":"field in this struct","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src\\a2.rs","byte_start":254,"byte_end":264,"line_start":17,"line_end":17,"column_start":5,"column_end":15,"is_primary":true,"text":[{"text":"    future_pos :Pos, ","highlight_start":5,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: field `future_pos` is never read\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a2.rs:17:5\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m15\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mstruct Blizzard {\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m       \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--------\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14mfield in this struct\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m16\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pos :Pos,\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m17\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    future_pos :Pos, \u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^^^^^^^^\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"field `future_pos` is never read","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src\\a2.rs","byte_start":467,"byte_end":473,"line_start":27,"line_end":27,"column_start":8,"column_end":14,"is_primary":false,"text":[{"text":"struct Player {","highlight_start":8,"highlight_end":14}],"label":"field in this struct","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"src\\a2.rs","byte_start":497,"byte_end":507,"line_start":29,"line_end":29,"column_start":5,"column_end":15,"is_primary":true,"text":[{"text":"    future_pos :Pos, ","highlight_start":5,"highlight_end":15}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: field `future_pos` is never read\u001b[0m\n\u001b[0m  \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m--> \u001b[0m\u001b[0msrc\\a2.rs:29:5\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m27\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0mstruct Player {\u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m       \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m------\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14mfield in this struct\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m28\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    pos :Pos, \u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;14m29\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m    future_pos :Pos, \u001b[0m\n\u001b[0m   \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;14m| \u001b[0m\u001b[0m    \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;11m^^^^^^^^^^\u001b[0m\n\n"}
 | 
				
			||||||
 | 
					{"message":"8 warnings emitted","code":null,"level":"warning","spans":[],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[38;5;11mwarning\u001b[0m\u001b[0m\u001b[1m\u001b[38;5;15m: 8 warnings emitted\u001b[0m\n\n"}
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					f0fa31a79957e157
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					{"rustc":2347157018072859861,"features":"[]","target":16997346216964277088,"profile":1021633075455700787,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"debug\\.fingerprint\\d05-cd6375c08847f9de\\dep-test-bin-d05"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0}
 | 
				
			||||||
							
								
								
									
										1
									
								
								d24/target/debug/d05.d
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								d24/target/debug/d05.d
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					C:\personal\Programmierdaten\rust\advent_of_code\y2022\d24\target\debug\d05.exe: C:\personal\Programmierdaten\rust\advent_of_code\y2022\d24\src\a1.rs C:\personal\Programmierdaten\rust\advent_of_code\y2022\d24\src\a2.rs C:\personal\Programmierdaten\rust\advent_of_code\y2022\d24\src\main.rs
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								d24/target/debug/d05.exe
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								d24/target/debug/d05.exe
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								d24/target/debug/d05.pdb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								d24/target/debug/d05.pdb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										7
									
								
								d24/target/debug/deps/d05-54bad1502471c435.d
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								d24/target/debug/deps/d05-54bad1502471c435.d
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					c:\personal\Programmierdaten\rust\advent_of_code\y2022\d24\target\debug\deps\d05-54bad1502471c435.rmeta: src\main.rs src\a1.rs src\a2.rs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					c:\personal\Programmierdaten\rust\advent_of_code\y2022\d24\target\debug\deps\d05-54bad1502471c435.d: src\main.rs src\a1.rs src\a2.rs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					src\main.rs:
 | 
				
			||||||
 | 
					src\a1.rs:
 | 
				
			||||||
 | 
					src\a2.rs:
 | 
				
			||||||
							
								
								
									
										7
									
								
								d24/target/debug/deps/d05-cd6375c08847f9de.d
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								d24/target/debug/deps/d05-cd6375c08847f9de.d
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					c:\personal\Programmierdaten\rust\advent_of_code\y2022\d24\target\debug\deps\d05-cd6375c08847f9de.rmeta: src\main.rs src\a1.rs src\a2.rs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					c:\personal\Programmierdaten\rust\advent_of_code\y2022\d24\target\debug\deps\d05-cd6375c08847f9de.d: src\main.rs src\a1.rs src\a2.rs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					src\main.rs:
 | 
				
			||||||
 | 
					src\a1.rs:
 | 
				
			||||||
 | 
					src\a2.rs:
 | 
				
			||||||
							
								
								
									
										7
									
								
								d24/target/debug/deps/d05.d
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								d24/target/debug/deps/d05.d
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					C:\personal\Programmierdaten\rust\advent_of_code\y2022\d24\target\debug\deps\d05.exe: src\main.rs src\a1.rs src\a2.rs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					C:\personal\Programmierdaten\rust\advent_of_code\y2022\d24\target\debug\deps\d05.d: src\main.rs src\a1.rs src\a2.rs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					src\main.rs:
 | 
				
			||||||
 | 
					src\a1.rs:
 | 
				
			||||||
 | 
					src\a2.rs:
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								d24/target/debug/deps/d05.exe
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								d24/target/debug/deps/d05.exe
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								d24/target/debug/deps/d05.pdb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								d24/target/debug/deps/d05.pdb
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										0
									
								
								d24/target/debug/deps/libd05-54bad1502471c435.rmeta
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								d24/target/debug/deps/libd05-54bad1502471c435.rmeta
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								d24/target/debug/deps/libd05-cd6375c08847f9de.rmeta
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								d24/target/debug/deps/libd05-cd6375c08847f9de.rmeta
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user