Fix path tool overlays (#3810)

* Add vector data to merge function

Use destructuring to avoid issues like this in the future

* Remove unnecessary explict copying
This commit is contained in:
Dennis Kobert 2026-02-23 10:17:00 +01:00 committed by GitHub
parent 71b4c98de7
commit a1c1039ea1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 15 additions and 5 deletions

View File

@ -284,11 +284,21 @@ impl RenderMetadata {
/// Merge another RenderMetadata into this one. /// Merge another RenderMetadata into this one.
/// Values from `other` take precedence for duplicate keys. /// Values from `other` take precedence for duplicate keys.
pub fn merge(&mut self, other: &RenderMetadata) { pub fn merge(&mut self, other: &RenderMetadata) {
self.upstream_footprints.extend(other.upstream_footprints.iter().map(|(k, v)| (*k, *v))); // Destructure Self to get errors when new fields are added to the struct
self.local_transforms.extend(other.local_transforms.iter().map(|(k, v)| (*k, *v))); let RenderMetadata {
self.first_element_source_id.extend(other.first_element_source_id.iter().map(|(k, v)| (*k, *v))); upstream_footprints,
self.click_targets.extend(other.click_targets.iter().map(|(k, v)| (*k, v.clone()))); local_transforms,
self.clip_targets.extend(other.clip_targets.iter().copied()); first_element_source_id,
click_targets,
clip_targets,
vector_data,
} = self;
upstream_footprints.extend(other.upstream_footprints.iter());
local_transforms.extend(other.local_transforms.iter());
first_element_source_id.extend(other.first_element_source_id.iter());
click_targets.extend(other.click_targets.iter().map(|(k, v)| (*k, v.clone())));
clip_targets.extend(other.clip_targets.iter());
vector_data.extend(other.vector_data.iter().map(|(id, data)| (*id, data.clone())));
} }
} }