use crate::Vector2;
pub trait Vector2ToFloat {
fn to_float(self) -> Vector2<f32>;
}
pub trait Vector2ToDouble {
fn to_double(self) -> Vector2<f64>;
}
macro_rules! impl_vec_to_decimal {
($m:ty) => {
impl Vector2ToFloat for Vector2<$m> {
fn to_float(self) -> Vector2<f32> {
Vector2 {
x: self.x as f32,
y: self.y as f32,
}
}
}
impl Vector2ToDouble for Vector2<$m> {
fn to_double(self) -> Vector2<f64> {
Vector2 {
x: self.x as f64,
y: self.y as f64,
}
}
}
};
}
impl_vec_to_decimal!(u8);
impl_vec_to_decimal!(u16);
impl_vec_to_decimal!(u32);
impl_vec_to_decimal!(u64);
impl_vec_to_decimal!(u128);
impl_vec_to_decimal!(usize);
impl_vec_to_decimal!(i8);
impl_vec_to_decimal!(i16);
impl_vec_to_decimal!(i32);
impl_vec_to_decimal!(i64);
impl_vec_to_decimal!(i128);
impl_vec_to_decimal!(isize);
impl_vec_to_decimal!(f32);
impl_vec_to_decimal!(f64);