File size: 819 Bytes
52a9af3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | //! Requirements rules are additive across layers. Higher-priority rules are
//! appended first so the final rule order keeps priority visible.
use crate::RequirementSource;
use crate::RequirementsExecPolicyToml;
use crate::Sourced;
use super::stack::merge_output_source;
pub(super) fn merge(
target: &mut Option<Sourced<RequirementsExecPolicyToml>>,
incoming: Option<RequirementsExecPolicyToml>,
source: &RequirementSource,
) {
let Some(incoming) = incoming else {
return;
};
let Some(existing) = target.as_mut() else {
*target = Some(Sourced::new(incoming, source.clone()));
return;
};
let RequirementsExecPolicyToml { prefix_rules } = incoming;
existing.value.prefix_rules.extend(prefix_rules);
merge_output_source(&mut existing.source, source);
}
|