Skip to main content

chrono_node/common/
configuration.rs

1//! upstream `configurations.ts`: `includeCommonConfiguration`.
2
3use crate::core::configuration::{Configuration, Flags};
4
5/// `includeCommonConfiguration(configuration, strictMode)`.
6pub fn include_common_configuration(configuration: &mut Configuration, strict_mode: bool) {
7    configuration.unshift_parser("ISOFormatParser", Flags::none());
8
9    configuration.unshift_refiner("MergeWeekdayComponentRefiner", Flags::none());
10    configuration.unshift_refiner("ExtractTimezoneOffsetRefiner", Flags::none());
11    configuration.unshift_refiner("OverlapRemovalRefiner", Flags::none());
12
13    // Applied as late as possible: it needs both date and time for ambiguous (DST) abbreviations.
14    configuration.push_refiner("ExtractTimezoneAbbrRefiner", Flags::none());
15    configuration.push_refiner("OverlapRemovalRefiner", Flags::none());
16    configuration.push_refiner("ForwardDateRefiner", Flags::none());
17    configuration.push_refiner("UnlikelyFormatFilter", Flags::of(&[("strictMode", strict_mode)]));
18}