Trait vector2math::Pair

source ·
pub trait Pair: Sized {
    type Item;

    fn into_pair(self) -> (Self::Item, Self::Item);
    fn from_items(a: Self::Item, b: Self::Item) -> Self;
    fn first(&self) -> Self::Item;
    fn second(&self) -> Self::Item;

    fn pairwise<O, P, F, R>(self, other: O, f: F) -> P
    where
        O: Pair,
        P: Pair<Item = R>,
        F: Fn(Self::Item, O::Item) -> R
, { ... } fn pair_iter(self) -> Chain2<Self::Item> { ... } }
Expand description

Trait for defining a pair of items of the same type.

This trait is meant to generalize having two similar things. It is implemented for (T, T) and [T; 2] with Item = T. However, because a pair does not necessarily have to be an actual pair It is also implemented for (T, T, T, T) and [T; 4] with Item = (T, T) and Item = [T; 2] respectively.

Required Associated Types§

The type of the pair’s item

Required Methods§

Get the pair

Create a pair from two items

Get the first item

Get the second item

Provided Methods§

Apply a function pairwise to the items of two pairs

Get an iterator over the pair’s items

Implementations on Foreign Types§

Implementors§