Trait Array

Source
pub trait Array: Index<usize, Output = Self::Element, Output = Self::Element> + IndexMut<usize> {
    type Element: Copy;

    // Required methods
    fn len() -> usize;
    fn from_value(value: Self::Element) -> Self;
    fn sum(self) -> Self::Element
       where Self::Element: Add<Output = Self::Element>;
    fn product(self) -> Self::Element
       where Self::Element: Mul<Output = Self::Element>;
    fn is_finite(&self) -> bool
       where Self::Element: Float;

    // Provided methods
    fn as_ptr(&self) -> *const Self::Element { ... }
    fn as_mut_ptr(&mut self) -> *mut Self::Element { ... }
    fn swap_elements(&mut self, i: usize, j: usize) { ... }
}
Expand description

An array containing elements of type Element

Required Associated Types§

Required Methods§

Source

fn len() -> usize

Get the number of elements in the array type

use cgmath::prelude::*;
use cgmath::Vector3;

assert_eq!(Vector3::<f32>::len(), 3);
Source

fn from_value(value: Self::Element) -> Self

Construct a vector from a single value, replicating it.

use cgmath::prelude::*;
use cgmath::Vector3;

assert_eq!(Vector3::from_value(1),
           Vector3::new(1, 1, 1));
Source

fn sum(self) -> Self::Element
where Self::Element: Add<Output = Self::Element>,

The sum of the elements of the array.

Source

fn product(self) -> Self::Element
where Self::Element: Mul<Output = Self::Element>,

The product of the elements of the array.

Source

fn is_finite(&self) -> bool
where Self::Element: Float,

Whether all elements of the array are finite

Provided Methods§

Source

fn as_ptr(&self) -> *const Self::Element

Get the pointer to the first element of the array.

Source

fn as_mut_ptr(&mut self) -> *mut Self::Element

Get a mutable pointer to the first element of the array.

Source

fn swap_elements(&mut self, i: usize, j: usize)

Swap the elements at indices i and j in-place.

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<S> Array for Point1<S>
where S: BaseNum,

Source§

impl<S> Array for Point2<S>
where S: BaseNum,

Source§

impl<S> Array for Point3<S>
where S: BaseNum,

Source§

impl<S> Array for Vector1<S>
where S: Copy,

Source§

impl<S> Array for Vector2<S>
where S: Copy,

Source§

impl<S> Array for Vector3<S>
where S: Copy,

Source§

impl<S> Array for Vector4<S>
where S: Copy,