MapVector

Trait MapVector 

Source
pub trait MapVector<T, const DIM: usize> {
    // Required method
    fn map<U, F: FnMut(T) -> U>(self, func: F) -> Vector<U, DIM>;
}
Expand description

Trait to allow for mapping Vector and &Vector

Required Methods§

Source

fn map<U, F: FnMut(T) -> U>(self, func: F) -> Vector<U, DIM>

Map an operation over every element of the vector

use perpendicular::MapVector;
let v = Vector::new((1, 2, 3, 4));
assert_eq!(v.clone().map(|i| i * 3), Vector::new((3, 6, 9, 12)));
assert_eq!(v.clone().map(|i| -i), Vector::new((-1, -2, -3, -4)));

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'a, T, const DIM: usize> MapVector<&'a T, DIM> for &'a Vector<T, DIM>

Source§

impl<T, const DIM: usize> MapVector<T, DIM> for Vector<T, DIM>