pub struct Pos {
pub x: isize,
pub y: isize,
}Expand description
2-dimensional coordinates struct.
Fields§
§x: isizeX coordinate.
y: isizeY coordinate.
Implementations§
Source§impl Pos
impl Pos
Sourcepub const fn move_dir(&self, dir: Dir) -> Self
pub const fn move_dir(&self, dir: Dir) -> Self
Returns a new position after movign towards dir.
Sourcepub const fn move_dir_mut(&mut self, dir: Dir)
pub const fn move_dir_mut(&mut self, dir: Dir)
Changes the position by moving towards dir.
Sourcepub const fn in_bounds(&self, bounds: (Self, Self)) -> bool
pub const fn in_bounds(&self, bounds: (Self, Self)) -> bool
Checks if the position is within a rectangular region’s bounds
(two pos representing two diagonally opposite corners).
Sourcepub const fn manhattan_distance(&self, other: Self) -> usize
pub const fn manhattan_distance(&self, other: Self) -> usize
Calculates the Manhattan distance to other.
Sourcepub fn adjacent(&self) -> impl Iterator<Item = Self> + use<>
pub fn adjacent(&self) -> impl Iterator<Item = Self> + use<>
Returns an iterator of adjacent positions.
Trait Implementations§
Source§impl AddAssign for Pos
impl AddAssign for Pos
Source§fn add_assign(&mut self, __rhs: Self)
fn add_assign(&mut self, __rhs: Self)
Performs the
+= operation. Read moreSource§impl SubAssign for Pos
impl SubAssign for Pos
Source§fn sub_assign(&mut self, __rhs: Self)
fn sub_assign(&mut self, __rhs: Self)
Performs the
-= operation. Read moreimpl Copy for Pos
impl Eq for Pos
impl StructuralPartialEq for Pos
Auto Trait Implementations§
impl Freeze for Pos
impl RefUnwindSafe for Pos
impl Send for Pos
impl Sync for Pos
impl Unpin for Pos
impl UnsafeUnpin for Pos
impl UnwindSafe for Pos
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more