Avoid copying iterator sources.

This commit is contained in:
Stephen Chung
2020-04-24 22:54:56 +08:00
parent 3cb3dc8e4f
commit 9998cf8890
4 changed files with 16 additions and 27 deletions

View File

@@ -116,8 +116,8 @@ def_package!(crate:BasicArrayPackage:"Basic array utilities.", lib, {
// Register array iterator
lib.type_iterators.insert(
TypeId::of::<Array>(),
Box::new(|a: &Dynamic| {
Box::new(a.downcast_ref::<Array>().unwrap().clone().into_iter())
Box::new(|a: Dynamic| {
Box::new(a.cast::<Array>().into_iter())
as Box<dyn Iterator<Item = Dynamic>>
}),
);