chrono-node-rs 0.1.0

Behaviour-matched Rust port of chrono-node: natural-language date parsing, checked against chrono-node's own output
Documentation
//! upstream `src/locales/nl/index.ts`: the named configurations' slots, in upstream order with
//! their constructor flags. Generated by `harness/onboard/onboard.js` from `tests/golden/configurations.json`; do not
//! edit. The `configurations` test checks them against chrono-node.

use crate::core::configuration::{Configuration, Flags};

/// `nl.casual`: upstream's exported `casual`.
pub fn casual() -> Configuration {
    let mut c = Configuration::default();
    c.push_parser("NLTimeUnitCasualRelativeFormatParser", Flags::none());
    c.push_parser("NLRelativeDateFormatParser", Flags::none());
    c.push_parser("NLMonthNameParser", Flags::none());
    c.push_parser("NLCasualDateTimeParser", Flags::none());
    c.push_parser("NLCasualTimeParser", Flags::none());
    c.push_parser("NLCasualDateParser", Flags::none());
    c.push_parser("ISOFormatParser", Flags::none());
    c.push_parser("SlashDateFormatParser", Flags::of(&[("littleEndian", true)]));
    c.push_parser("NLTimeUnitWithinFormatParser", Flags::none());
    c.push_parser("NLMonthNameMiddleEndianParser", Flags::none());
    c.push_parser("NLMonthNameParser", Flags::none());
    c.push_parser("NLWeekdayParser", Flags::none());
    c.push_parser("NLCasualYearMonthDayParser", Flags::none());
    c.push_parser("NLSlashMonthFormatParser", Flags::none());
    c.push_parser("NLTimeExpressionParser", Flags::of(&[("strictMode", false)]));
    c.push_parser("NLTimeUnitAgoFormatParser", Flags::of(&[("strictMode", false)]));
    c.push_parser("NLTimeUnitLaterFormatParser", Flags::of(&[("strictMode", false)]));
    c.push_refiner("OverlapRemovalRefiner", Flags::none());
    c.push_refiner("ExtractTimezoneOffsetRefiner", Flags::none());
    c.push_refiner("MergeWeekdayComponentRefiner", Flags::none());
    c.push_refiner("NLMergeDateTimeRefiner", Flags::none());
    c.push_refiner("NLMergeDateRangeRefiner", Flags::none());
    c.push_refiner("ExtractTimezoneAbbrRefiner", Flags::none());
    c.push_refiner("OverlapRemovalRefiner", Flags::none());
    c.push_refiner("ForwardDateRefiner", Flags::none());
    c.push_refiner("UnlikelyFormatFilter", Flags::of(&[("strictMode", false)]));
    c
}

/// `nl.strict`: upstream's exported `strict`.
pub fn strict() -> Configuration {
    let mut c = Configuration::default();
    c.push_parser("ISOFormatParser", Flags::none());
    c.push_parser("SlashDateFormatParser", Flags::of(&[("littleEndian", true)]));
    c.push_parser("NLTimeUnitWithinFormatParser", Flags::none());
    c.push_parser("NLMonthNameMiddleEndianParser", Flags::none());
    c.push_parser("NLMonthNameParser", Flags::none());
    c.push_parser("NLWeekdayParser", Flags::none());
    c.push_parser("NLCasualYearMonthDayParser", Flags::none());
    c.push_parser("NLSlashMonthFormatParser", Flags::none());
    c.push_parser("NLTimeExpressionParser", Flags::of(&[("strictMode", true)]));
    c.push_parser("NLTimeUnitAgoFormatParser", Flags::of(&[("strictMode", true)]));
    c.push_parser("NLTimeUnitLaterFormatParser", Flags::of(&[("strictMode", true)]));
    c.push_refiner("OverlapRemovalRefiner", Flags::none());
    c.push_refiner("ExtractTimezoneOffsetRefiner", Flags::none());
    c.push_refiner("MergeWeekdayComponentRefiner", Flags::none());
    c.push_refiner("NLMergeDateTimeRefiner", Flags::none());
    c.push_refiner("NLMergeDateRangeRefiner", Flags::none());
    c.push_refiner("ExtractTimezoneAbbrRefiner", Flags::none());
    c.push_refiner("OverlapRemovalRefiner", Flags::none());
    c.push_refiner("ForwardDateRefiner", Flags::none());
    c.push_refiner("UnlikelyFormatFilter", Flags::of(&[("strictMode", true)]));
    c
}