Skip to main content

whichtime_sys/refiners/
mod.rs

1//! Refiner infrastructure and implementations
2
3use crate::context::ParsingContext;
4use crate::results::ParsedResult;
5
6/// Trait for post-processing parser output.
7///
8/// Refiners can merge adjacent matches, remove overlaps, or resolve
9/// ambiguities after the initial parse step.
10pub trait Refiner: Send + Sync {
11    /// Transform the current list of parsed results.
12    fn refine(&self, context: &ParsingContext, results: Vec<ParsedResult>) -> Vec<ParsedResult>;
13}
14
15mod forward_date;
16mod merge_date_range;
17mod merge_datetime;
18mod merge_weekday_date;
19mod overlap_removal;
20
21pub use forward_date::ForwardDateRefiner;
22pub use merge_date_range::MergeDateRangeRefiner;
23pub use merge_datetime::MergeDateTimeRefiner;
24pub use merge_weekday_date::MergeWeekdayDateRefiner;
25pub use overlap_removal::OverlapRemovalRefiner;