20 lines
537 B
Rust
20 lines
537 B
Rust
/// An array-backed vector type. Named fields are made accessible via the Deref/DerefMut traits which are implmented for 2-4 dimensions.
|
|
/// let mut v = Vector::new([1.0,2.0,3.0]);
|
|
/// v.x += v.z;
|
|
/// println!("v.x={}",v.x);
|
|
|
|
#[derive(Clone,Copy,Debug,Hash,Eq,PartialEq)]
|
|
pub struct Vector<const N:usize,T>{
|
|
pub(crate) array:[T;N],
|
|
}
|
|
|
|
crate::impl_vector!();
|
|
|
|
// Needs const generics for generic case
|
|
crate::impl_vector_extend!(2);
|
|
crate::impl_vector_extend!(3);
|
|
|
|
//cross product
|
|
#[cfg(feature="named-fields")]
|
|
crate::impl_vector_3!();
|