pub fn resolve_cpu_affinity_with_override(
policy: CpuAffinityPolicy,
inputs: &[CpuAffinityInput],
default_domain: CpuDomainId,
explicit_domain: Option<CpuDomainId>,
) -> Result<CpuAffinitySelection, CpuAffinityResolutionError>Expand description
Resolve CPU affinity with an optional operation-local explicit override.
Explicit placement takes precedence before input-byte accounting or strict
mixed-domain validation. Passing None applies the same policy resolution
as resolve_cpu_affinity.
§Examples
use tenferro_cpu::{
resolve_cpu_affinity_with_override, CpuAffinityInput, CpuAffinityPolicy,
CpuAffinitySelectionReason,
};
use tenferro_tensor::CpuDomainId;
let mixed = [
CpuAffinityInput { domain: Some(CpuDomainId::new(1)), logical_bytes: 1 },
CpuAffinityInput { domain: Some(CpuDomainId::new(2)), logical_bytes: 1 },
];
let selected = resolve_cpu_affinity_with_override(
CpuAffinityPolicy::RequireSingleDomain,
&mixed,
CpuDomainId::new(1),
Some(CpuDomainId::new(9)),
)?;
assert_eq!(selected.domain, CpuDomainId::new(9));
assert_eq!(selected.reason, CpuAffinitySelectionReason::ExplicitOverride);§Errors
When explicit_domain is None, returns
CpuAffinityResolutionError::LogicalByteCountOverflow for an unrepresentable
domain byte total or CpuAffinityResolutionError::MultipleKnownDomains
when strict policy sees more than one known input domain. A present explicit
override bypasses both policy errors.