summaryrefslogtreecommitdiff
path: root/engine-reflection/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'engine-reflection/src/lib.rs')
-rw-r--r--engine-reflection/src/lib.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/engine-reflection/src/lib.rs b/engine-reflection/src/lib.rs
index d9e2c72..76dc71d 100644
--- a/engine-reflection/src/lib.rs
+++ b/engine-reflection/src/lib.rs
@@ -313,6 +313,7 @@ pub struct Slice
pub item_layout: Layout,
pub get_item_type_name: FnWithDebug<&'static str>,
pub try_get_item: fn(target: &dyn Any, index: usize) -> Result<&dyn Any, GetError>,
+ pub try_get_len: fn(target: &dyn Any) -> Option<usize>,
}
impl Slice
@@ -477,6 +478,11 @@ unsafe impl<T: Reflection> Reflection for &'static [T]
Ok(item)
},
+ try_get_len: |target| {
+ let target = target.downcast_ref::<Self>()?;
+
+ Some(target.len())
+ },
});
}