From beb297d6c9ace7c3461301caed8c240580e5cd45 Mon Sep 17 00:00:00 2001 From: Kenneth Loeffler <kenloef@gmail.com> Date: Wed, 4 Oct 2023 13:47:44 -0400 Subject: [PATCH] Use multi clone in from_data_model_instance and from_instance_array --- src/roblox/document/mod.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/roblox/document/mod.rs b/src/roblox/document/mod.rs index ae76be3..4f5cf00 100644 --- a/src/roblox/document/mod.rs +++ b/src/roblox/document/mod.rs @@ -1,4 +1,4 @@ -use rbx_dom_weak::{InstanceBuilder as DomInstanceBuilder, WeakDom}; +use rbx_dom_weak::{types::Ref as DomRef, InstanceBuilder as DomInstanceBuilder, WeakDom}; use rbx_xml::{ DecodeOptions as XmlDecodeOptions, DecodePropertyBehavior as XmlDecodePropertyBehavior, EncodeOptions as XmlEncodeOptions, EncodePropertyBehavior as XmlEncodePropertyBehavior, @@ -247,11 +247,13 @@ impl Document { } let mut dom = WeakDom::new(DomInstanceBuilder::new("ROOT")); + let children: Vec<DomRef> = i + .get_children() + .iter() + .map(|instance| instance.dom_ref) + .collect(); - for data_model_child in i.get_children() { - data_model_child.clone_into_external_dom(&mut dom); - } - + Instance::clone_multiple_into_external_dom(&children, &mut dom); postprocess_dom_for_place(&mut dom); Ok(Self { @@ -274,11 +276,9 @@ impl Document { } let mut dom = WeakDom::new(DomInstanceBuilder::new("ROOT")); + let instances: Vec<DomRef> = v.iter().map(|instance| instance.dom_ref).collect(); - for instance in v { - instance.clone_into_external_dom(&mut dom); - } - + Instance::clone_multiple_into_external_dom(&instances, &mut dom); postprocess_dom_for_model(&mut dom); Ok(Self {