pub struct Position {
pub x: i32,
pub y: i32,
}Expand description
Position on the grid
Fields§
§x: i32Column coordinate. May be negative or out-of-bounds for transient
values before Position::wrap or Position::in_bounds checks.
y: i32Row coordinate. May be negative or out-of-bounds for transient values
before Position::wrap or Position::in_bounds checks.
Implementations§
Source§impl Position
impl Position
Sourcepub fn add_direction(&self, direction: Direction) -> Self
pub fn add_direction(&self, direction: Direction) -> Self
Add direction delta to position
Sourcepub fn wrap(&self, width: i32, height: i32) -> Self
pub fn wrap(&self, width: i32, height: i32) -> Self
Wrap position to fit within bounds (torus/wraparound boundaries)
Sourcepub fn manhattan_distance(&self, other: &Position) -> i32
pub fn manhattan_distance(&self, other: &Position) -> i32
Manhattan distance to another position
Trait Implementations§
impl Copy for Position
impl Eq for Position
impl StructuralPartialEq for Position
Auto Trait Implementations§
impl Freeze for Position
impl RefUnwindSafe for Position
impl Send for Position
impl Sync for Position
impl Unpin for Position
impl UnsafeUnpin for Position
impl UnwindSafe for Position
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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