pub struct AStar { /* private fields */ }
Expand description

Structure implementing the A* algorithm.

Implementations§

source§

impl AStar

source

pub fn new(nodes: HashMap<(usize, usize), Node>) -> Self

Creates a new AStar instance with the provided nodes.

§Parameters
  • nodes: A map of nodes where the keys are positions (x, y) and the values are Node objects.
§Returns

A new AStar instance initialized with the provided nodes.

§Example
let nodes = HashMap::new();
let astar = AStar::new(nodes);
source

pub fn find_shortest_path( &mut self, start: (usize, usize), goal: (usize, usize) ) -> Result<Option<Vec<(usize, usize)>>, AStarError>

Finds the shortest path from start to goal using the A* algorithm.

§Parameters
  • start: The starting point as a tuple (x, y).
  • goal: The goal point as a tuple (x, y).
§Returns

A Result<Option<Vec<(usize, usize)>>, AStarError> containing the path from the start to the goal if found, or an AStarError if no path is found or if an error occurs.

§Example
let mut astar = AStar::new(nodes);
let path = astar.find_shortest_path((0, 0), (5, 5));

Trait Implementations§

source§

impl Debug for AStar

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for AStar

§

impl RefUnwindSafe for AStar

§

impl Send for AStar

§

impl Sync for AStar

§

impl Unpin for AStar

§

impl UnwindSafe for AStar

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.