vec3 0.1.6

rust vector 3 functions
Documentation
use number_traits::Num;

#[inline]
pub fn sub<'a, T: Copy + Num>(out: &'a mut [T; 3], a: &[T; 3], b: &[T; 3]) -> &'a mut [T; 3] {
    out[0] = a[0] - b[0];
    out[1] = a[1] - b[1];
    out[2] = a[2] - b[2];
    out
}
#[test]
fn test_sub() {
    let mut v = [0, 0, 0];
    sub(&mut v, &[1, 1, 1], &[1, 1, 1]);
    assert!(v[0] == 0);
    assert!(v[1] == 0);
    assert!(v[2] == 0);
}

#[inline]
pub fn ssub<'a, T: Copy + Num>(out: &'a mut [T; 3], a: &[T; 3], s: T) -> &'a mut [T; 3] {
    out[0] = a[0] - s;
    out[1] = a[1] - s;
    out[2] = a[2] - s;
    out
}
#[test]
fn test_ssub() {
    let mut v = [0, 0, 0];
    ssub(&mut v, &[1, 1, 1], 1);
    assert!(v[0] == 0);
    assert!(v[1] == 0);
    assert!(v[2] == 0);
}