[][src]Enum mercator_db::space::Position

pub enum Position {
    Position1(Coordinate),
    Position2([Coordinate; 2]),
    Position3([Coordinate; 3]),
    Position4([Coordinate; 4]),
    Position5([Coordinate; 5]),
    Position6([Coordinate; 6]),
    Position7([Coordinate; 7]),
    Position8([Coordinate; 8]),
    PositionN(Vec<Coordinate>),
}

Store a position as efficiently as possible in terms of space.

Variants

Position1(Coordinate)

1 dimension positions.

Position2([Coordinate; 2])

2 dimensions positions.

Position3([Coordinate; 3])

3 dimensions positions.

Position4([Coordinate; 4])

4 dimensions positions.

Position5([Coordinate; 5])

5 dimensions positions.

Position6([Coordinate; 6])

6 dimensions positions.

Position7([Coordinate; 7])

7 dimensions positions.

Position8([Coordinate; 8])

8 dimensions positions.

PositionN(Vec<Coordinate>)

N dimensions positions.

Methods

impl Position[src]

pub fn dimensions(&self) -> usize[src]

Returns the number of dimensions or size of the vector.

pub fn norm(&self) -> f64[src]

Compute ||self||.

pub fn unit(&self) -> Self[src]

Compute the unit vector pointing in the same direction as self.

pub fn dot_product(&self, rhs: &Self) -> f64[src]

Multiplies self with rhs, producing a scalar value.

self • rhs = product

Note: The two vector sizes must be equal, a.k.a the two vectors must have the same number of dimensions.

Parameters

rhs: The right-hand side vector.

pub fn reduce_precision(&self, scale: u32) -> Self[src]

Remove bits of precision.

Parameters

  • scale: Number of bits of precision to remove from each coordinates.

Trait Implementations

impl<'_> Add<&'_ Position> for &'_ Position[src]

type Output = Position

The resulting type after applying the + operator.

impl Add<Position> for Position[src]

type Output = Position

The resulting type after applying the + operator.

impl AddAssign<Position> for Position[src]

impl Clone for Position[src]

impl Debug for Position[src]

impl<'de> Deserialize<'de> for Position[src]

impl Display for Position[src]

impl Eq for Position[src]

impl<'_> From<&'_ Position> for Vec<f64>[src]

impl<'_> From<&'_ Vec<f64>> for Position[src]

impl<'s> From<&'s Position> for Vec<&'s Coordinate>[src]

impl From<Position> for Vec<f64>[src]

impl From<Vec<Coordinate>> for Position[src]

impl From<Vec<f64>> for Position[src]

impl From<Vec<u64>> for Position[src]

impl FromIterator<Coordinate> for Position[src]

impl FromIterator<f64> for Position[src]

impl Hash for Position[src]

impl Index<usize> for Position[src]

type Output = Coordinate

The returned type after indexing.

impl IndexMut<usize> for Position[src]

impl Mul<Position> for Position[src]

type Output = Vec<Position>

The resulting type after applying the * operator.

impl Mul<f64> for Position[src]

type Output = Position

The resulting type after applying the * operator.

impl<'_> Mul<f64> for &'_ Position[src]

type Output = Position

The resulting type after applying the * operator.

impl MulAssign<f64> for Position[src]

impl Ord for Position[src]

impl PartialEq<Position> for Position[src]

impl PartialOrd<Position> for Position[src]

impl Serialize for Position[src]

impl StructuralEq for Position[src]

impl StructuralPartialEq for Position[src]

impl<'_> Sub<&'_ Position> for &'_ Position[src]

type Output = Position

The resulting type after applying the - operator.

impl Sub<Position> for Position[src]

type Output = Position

The resulting type after applying the - operator.

impl SubAssign<Position> for Position[src]

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

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.