summaryrefslogtreecommitdiff
path: root/engine/src/data_types
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2026-07-17 01:23:25 +0200
committerHampusM <hampus@hampusmat.com>2026-07-17 01:23:25 +0200
commit7b25df4c4dc3ead44dc02015fcc46c1ccb283b8e (patch)
tree4ff162b57ce32e1444851ba685c3e5ac6093c03b /engine/src/data_types
parente32c20e5d9693bc0ac5b3e371823a4de978cb4e6 (diff)
feat(engine): add Reflection derives to various types
Diffstat (limited to 'engine/src/data_types')
-rw-r--r--engine/src/data_types/dimens.rs8
-rw-r--r--engine/src/data_types/vector.rs16
2 files changed, 16 insertions, 8 deletions
diff --git a/engine/src/data_types/dimens.rs b/engine/src/data_types/dimens.rs
index a197560..64a30d3 100644
--- a/engine/src/data_types/dimens.rs
+++ b/engine/src/data_types/dimens.rs
@@ -1,8 +1,11 @@
use std::num::NonZeroU32;
use std::ops::Div;
+use crate::reflection::Reflection;
+
/// 2D dimensions.
-#[derive(Debug, Clone, Copy, PartialEq, Eq)]
+#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, Reflection)]
+#[reflection(impl_with_generics(<f32>, <f64>, <u32>, <u16>))]
pub struct Dimens<Value>
{
pub width: Value,
@@ -51,7 +54,8 @@ impl Dimens<u32>
}
/// 3D dimensions.
-#[derive(Debug, Clone, Copy, PartialEq, PartialOrd)]
+#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Reflection)]
+#[reflection(impl_with_generics(<f32>, <f64>, <u32>, <u16>))]
pub struct Dimens3<Value>
{
pub width: Value,
diff --git a/engine/src/data_types/vector.rs b/engine/src/data_types/vector.rs
index 980ca59..dd9e386 100644
--- a/engine/src/data_types/vector.rs
+++ b/engine/src/data_types/vector.rs
@@ -1,6 +1,7 @@
use std::ops::{Add, AddAssign, Div, DivAssign, Mul, MulAssign, Neg, Sub, SubAssign};
use crate::color::Color;
+use crate::reflection::Reflection;
macro_rules! impl_math_op_traits {
(impl $op_trait: ident for $vector: ident, ($($vec_field: ident),+)) => {
@@ -64,8 +65,9 @@ macro_rules! impl_math_op_traits {
};
}
-#[derive(Debug, Default, Clone, Copy, PartialEq, Eq)]
-pub struct Vec2<Value>
+#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, Reflection)]
+#[reflection(impl_with_generics(<f32>, <f64>, <u32>, <u16>))]
+pub struct Vec2<Value: 'static>
{
pub x: Value,
pub y: Value,
@@ -116,8 +118,9 @@ impl<Value> From<Vec2<Value>> for [Value; 2]
}
}
-#[derive(Debug, Default, Clone, Copy, PartialEq)]
-pub struct Vec3<Value>
+#[derive(Debug, Default, Clone, Copy, PartialEq, Reflection)]
+#[reflection(impl_with_generics(<f32>, <f64>, <u32>, <u16>))]
+pub struct Vec3<Value: 'static>
{
pub x: Value,
pub y: Value,
@@ -251,8 +254,9 @@ impl<Value> From<Vec3<Value>> for [Value; 3]
}
}
-#[derive(Debug, Default, Clone, Copy, PartialEq)]
-pub struct Vec4<Value>
+#[derive(Debug, Default, Clone, Copy, PartialEq, Reflection)]
+#[reflection(impl_with_generics(<f32>, <f64>, <u32>, <u16>))]
+pub struct Vec4<Value: 'static>
{
pub x: Value,
pub y: Value,