use crate::affinity::Affinity;
use crate::cell::Strategy;
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct PerCore;
impl Strategy for PerCore {
fn index(affinity: Affinity) -> usize {
affinity.processor_index()
}
fn count(affinity: Affinity) -> usize {
affinity.processor_count()
}
}
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct PerNuma;
impl Strategy for PerNuma {
fn index(affinity: Affinity) -> usize {
affinity.memory_region_index()
}
fn count(affinity: Affinity) -> usize {
affinity.memory_region_count()
}
}
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct PerProcess;
impl Strategy for PerProcess {
fn index(_affinity: Affinity) -> usize {
0
}
fn count(_affinity: Affinity) -> usize {
1
}
}