
pub fn puzzle(input: &str) -> usize {
    let initial_world_state = WorldState {

    };
    let mut queue = vec![initial_world_state];
    while !queue.is_empty() {
        let world = queue.remove(0);

    }

    panic!("Exhausted all possible moves without finding end condition!");

}

pub struct WorldState {

}

#[cfg(test)]
mod test {
    use super::*;

}


pub fn puzzle(input: &str) -> usize {
    0
}

#[cfg(test)]
mod test {
    use super::*;

}

--- 
+++ 
@@ -1,6 +1,20 @@
 
 pub fn puzzle(input: &str) -> usize {
-    0
+    let initial_world_state = WorldState {
+
+    };
+    let mut queue = vec![initial_world_state];
+    while !queue.is_empty() {
+        let world = queue.remove(0);
+
+    }
+
+    panic!("Exhausted all possible moves without finding end condition!");
+
+}
+
+pub struct WorldState {
+
 }
 
 #[cfg(test)]
Set up a BFS queue
