Struct positioning::Position
source · [−]Expand description
Represents a position in a 3D grid, bounded in each dimension by the maximum size of an i64
.
Around the bounds, all arithmetic in this module with be done in a wrapping way, so be aware
of that in your usage of this module.
Fields
x: i64
y: i64
z: i64
Implementations
sourceimpl Position
impl Position
sourcepub fn is_adjacent_to(self, other: Position) -> bool
pub fn is_adjacent_to(self, other: Position) -> bool
Returns whether or not we are adjacent to another position. Diagonal adjacency is not counted:
use positioning::Position;
assert!(!Position::new(0, 0, 0).is_adjacent_to(Position::new(1, 1, 0)))
sourcepub fn adjacent(self) -> Box<dyn Iterator<Item = Position>>
pub fn adjacent(self) -> Box<dyn Iterator<Item = Position>>
Returns an iterator over all adjacent positions.
sourcepub fn hamming_distance(self, other: Position) -> u64
pub fn hamming_distance(self, other: Position) -> u64
Computes the Hamming distance between two points.
Trait Implementations
sourceimpl Ord for Position
impl Ord for Position
1.21.0 · sourcefn max(self, other: Self) -> Self
fn max(self, other: Self) -> Self
Compares and returns the maximum of two values. Read more
1.21.0 · sourcefn min(self, other: Self) -> Self
fn min(self, other: Self) -> Self
Compares and returns the minimum of two values. Read more
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
Restrict a value to a certain interval. Read more
sourceimpl PartialEq<Position> for Position
impl PartialEq<Position> for Position
sourceimpl PartialOrd<Position> for Position
impl PartialOrd<Position> for Position
sourcefn partial_cmp(&self, other: &Position) -> Option<Ordering>
fn partial_cmp(&self, other: &Position) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
impl Copy for Position
impl Eq for Position
impl StructuralEq for Position
impl StructuralPartialEq for Position
Auto Trait Implementations
impl RefUnwindSafe for Position
impl Send for Position
impl Sync for Position
impl Unpin for Position
impl UnwindSafe for Position
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.