use fitts::{CardState, Rating, Scheduler, SchedulerConfig};
fn main() {
let mut scheduler = Scheduler::new(SchedulerConfig::default());
scheduler.add_card("vocabulary", "apple", CardState::default());
scheduler.add_card("vocabulary", "house", CardState::default());
scheduler.add_card("vocabulary", "car", CardState::default());
let due = scheduler.get_due_cards("vocabulary").unwrap();
println!("Due cards: {}", due.len());
for card in &due {
println!(
" {} - difficulty: {:?}, predicted RT: {:.2}s",
card.card_id, card.difficulty, card.predicted_rt
);
}
for card in due {
let result = scheduler
.review("vocabulary", &card.card_id, Rating::Good)
.unwrap();
println!(
"Reviewed {} - next interval: {} days",
card.card_id, result.card.interval_days
);
}
let stats = scheduler.deck_stats("vocabulary").unwrap();
println!("\nDeck stats:");
println!(" Total: {}", stats.total);
println!(" Due: {}", stats.due);
println!(" New: {}", stats.new);
println!(" Learning: {}", stats.learning);
println!(" Mature: {}", stats.mature);
}