diff options
Diffstat (limited to 'engine-reflection/src')
| -rw-r--r-- | engine-reflection/src/lib.rs | 6 |
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()) + }, }); } |
