pub struct Solver<'a> {
pub maze: &'a Maze,
}Expand description
Represents a maze solver
Fields§
§maze: &'a MazeMaze reference
Implementations§
Source§impl Solver<'_>
impl Solver<'_>
Sourcepub fn solve(&self) -> Result<MazeSolution, Error>
pub fn solve(&self) -> Result<MazeSolution, Error>
Attempts to solve the path between the start and end point defined within the maze referenced by the solver instance
§Returns
A Result containing either the solution if successful, or a Error if an error occurs
§Examples
use data_model::{Maze, MazePoint};
use maze::{MazeSolver, Solver};
let grid: Vec<Vec<char>> = vec![
vec!['S', 'W', ' ', ' ', 'W'],
vec![' ', 'W', ' ', 'W', ' '],
vec![' ', ' ', ' ', 'W', 'F'],
vec!['W', ' ', 'W', ' ', ' '],
vec![' ', ' ', ' ', 'W', ' '],
vec!['W', 'W', ' ', ' ', ' '],
vec!['W', 'W', ' ', 'W', ' '],
];
let solver = Solver {
maze: &Maze::from_vec(grid),
};
let result = solver.solve();
match result {
Ok(solution) => {
println!("Successfully solved maze, solution path => {}", solution.path);
}
Err(error) => {
panic!(
"failed to solve maze => {}",
error
);
}
}Auto Trait Implementations§
impl<'a> Freeze for Solver<'a>
impl<'a> RefUnwindSafe for Solver<'a>
impl<'a> Send for Solver<'a>
impl<'a> Sync for Solver<'a>
impl<'a> Unpin for Solver<'a>
impl<'a> UnwindSafe for Solver<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more