summaryrefslogtreecommitdiff
path: root/engine-reflection
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2026-07-07 21:43:55 +0200
committerHampusM <hampus@hampusmat.com>2026-07-07 21:43:55 +0200
commit28686c9359da2c2c46d12ae8aaada14ece17246f (patch)
treea2a260384eb53b214a5837284a594bd3c12f56ad /engine-reflection
parent0820dde7d6099f87f9eda6240b64306900e00855 (diff)
feat(engine): change enum reflection get_variant_reflection fn to get_variant_index
Diffstat (limited to 'engine-reflection')
-rw-r--r--engine-reflection/src/lib.rs9
1 files changed, 6 insertions, 3 deletions
diff --git a/engine-reflection/src/lib.rs b/engine-reflection/src/lib.rs
index a76abce..a31fef0 100644
--- a/engine-reflection/src/lib.rs
+++ b/engine-reflection/src/lib.rs
@@ -138,7 +138,7 @@ pub struct Enum
pub get_default_value: fn() -> Option<DefaultValueFn>,
pub cast_dyn_any: CastDynAnyFn,
- pub get_variant_reflection: fn(&dyn Any) -> Option<&'static EnumVariant>,
+ pub get_variant_index: fn(&dyn Any) -> Option<usize>,
}
impl Enum
@@ -490,10 +490,13 @@ unsafe impl<T: Reflection> Reflection for Option<T>
is_unit_only: false,
get_default_value: || Some(|| Box::new(Option::<T>::None)),
cast_dyn_any: |ptr| ptr.cast::<Self>(),
- get_variant_reflection: |target| {
+ get_variant_index: |target| {
let target = target.downcast_ref::<Self>()?;
- Some(target.get_variant_reflection())
+ Some(match target {
+ Some(_) => 0,
+ None => 1,
+ })
},
});
}