#[derive(Debug, Clone)]
pub enum SamplingStrategy {
None,
Random { size: usize },
Reservoir { size: usize },
Systematic { interval: usize },
}
impl SamplingStrategy {
pub fn description(&self) -> String {
match self {
SamplingStrategy::None => "Full dataset analysis".to_string(),
SamplingStrategy::Random { size } => format!("Random sampling ({} records)", size),
SamplingStrategy::Reservoir { size } => {
format!("Reservoir sampling ({} records)", size)
}
SamplingStrategy::Systematic { interval } => {
format!("Systematic (every {}th record)", interval)
}
}
}
}