use std::num::NonZeroUsize;
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub enum Strategy {
#[default]
RoundRobin,
}
impl Strategy {
pub(super) fn select(&self, cursor: &mut usize, members: NonZeroUsize) -> usize {
match self {
Self::RoundRobin => {
let selected = *cursor % members.get();
*cursor = cursor.wrapping_add(1);
selected
}
}
}
}