32 lines
587 B
Rust
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(),
|
|
}
|
|
}
|
|
}
|