pub trait Classifier: Send + Sync {
// Required methods
fn name(&self) -> &'static str;
fn classify(&self, task: &Task, schedule: &Schedule) -> (String, usize);
}Expand description
Classifiers discretize continuous task attributes into categorical labels.
This abstraction enables multiple view patterns (Kanban, risk matrix, budget tracking) through a single interface. Classifiers are read-only - they observe state but never mutate it.
§Example
use utf8proj_core::{Classifier, StatusClassifier, Task, Schedule};
let classifier = StatusClassifier;
assert_eq!(classifier.name(), "Progress Status");