use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct CandidatePlan<Candidate> {
pub kernel_id: String,
pub candidates: Vec<Candidate>,
}
impl<Candidate> CandidatePlan<Candidate> {
#[must_use]
pub fn candidate_count(&self) -> usize {
self.candidates.len()
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn empty_plan_has_zero_candidates() {
let plan: CandidatePlan<u32> = CandidatePlan {
kernel_id: "k".into(),
candidates: vec![],
};
assert_eq!(plan.candidate_count(), 0);
}
}