in tools/hakari/src/hakari.rs [1171:1268]
fn insert(
self,
output_single_feature: bool,
unify_target_host: UnifyTargetHostImpl,
mut insert_cb: impl FnMut(BuildPlatform, &'a ComputedInnerMap<'g>),
) {
use BuildPlatform::*;
match self {
ValueDescribe::None => {
// Empty, ignore. (This should probably never happen anyway.)
}
ValueDescribe::SingleTarget(target_inner) => {
// Just one way to unify these.
if output_single_feature {
insert_cb(Target, target_inner);
if unify_target_host == UnifyTargetHostImpl::ReplicateTargetOnHost {
insert_cb(Host, target_inner);
}
}
}
ValueDescribe::SingleHost(host_inner) => {
// Just one way to unify other.
if output_single_feature {
insert_cb(Host, host_inner);
}
}
ValueDescribe::MultiTarget(target_inner) => {
// Unify features for target.
insert_cb(Target, target_inner);
if unify_target_host == UnifyTargetHostImpl::ReplicateTargetOnHost {
insert_cb(Host, target_inner);
}
}
ValueDescribe::MultiHost(host_inner) => {
// Unify features for host.
insert_cb(Host, host_inner);
}
ValueDescribe::SingleMatchingBoth {
target_inner,
host_inner,
} => {
// Just one way to unify across both.
if output_single_feature {
insert_cb(Target, target_inner);
insert_cb(Host, host_inner);
}
}
ValueDescribe::SingleNonMatchingBoth {
target_inner,
host_inner,
} => {
// Unify features for both across both.
insert_cb(Target, target_inner);
insert_cb(Host, host_inner);
if unify_target_host != UnifyTargetHostImpl::None {
insert_cb(Target, host_inner);
insert_cb(Host, target_inner);
}
}
ValueDescribe::MultiTargetSingleHost {
target_inner,
host_inner,
} => {
// Unify features for both across both.
insert_cb(Target, target_inner);
insert_cb(Host, host_inner);
if unify_target_host != UnifyTargetHostImpl::None {
insert_cb(Target, host_inner);
insert_cb(Host, target_inner);
}
}
ValueDescribe::MultiHostSingleTarget {
target_inner,
host_inner,
} => {
// Unify features for both across both.
insert_cb(Target, target_inner);
insert_cb(Host, host_inner);
if unify_target_host != UnifyTargetHostImpl::None {
insert_cb(Target, host_inner);
insert_cb(Host, target_inner);
}
}
ValueDescribe::MultiBoth {
target_inner,
host_inner,
} => {
// Unify features for both across both.
insert_cb(Target, target_inner);
insert_cb(Host, host_inner);
if unify_target_host != UnifyTargetHostImpl::None {
insert_cb(Target, host_inner);
insert_cb(Host, target_inner);
}
}
}
}