skunk2d/src/vec2.rs

32 lines
587 B
Rust

use num::{Num, ToPrimitive};
#[derive(Copy, Clone)]
pub struct Vec2<T: Num + Copy + ToPrimitive> {
pub x: T,
pub y: T,
}
impl<T: Num + Copy + ToPrimitive> Vec2<T> {
//pub static
pub fn zero() -> Self {
Vec2 {
x: T::zero(),
y: T::zero(),
}
}
//pub
pub fn size(&self) -> usize {
(self.x * self.y).to_usize().unwrap()
}
}
impl<T: Num + Copy + ToPrimitive + Default> Default for Vec2<T> {
fn default() -> Self {
Vec2 {
x: T::default(),
y: T::default(),
}
}
}