/// 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);

#[repr(transparent)]
#[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!();
