use crate::core::configuration::{Configuration, Flags};
pub fn casual() -> Configuration {
let mut c = Configuration::default();
c.push_parser("ITYearMonthDayParser", Flags::of(&[("strictMonthDateOrder", false)]));
c.push_parser("ISOFormatParser", Flags::none());
c.push_parser("SlashDateFormatParser", Flags::of(&[("littleEndian", true)]));
c.push_parser("ITTimeUnitWithinFormatParser", Flags::of(&[("strictMode", false)]));
c.push_parser("ITMonthNameLittleEndianParser", Flags::none());
c.push_parser("ITMonthNameMiddleEndianParser", Flags::of(&[("shouldSkipYearLikeDate", true)]));
c.push_parser("ITWeekdayParser", Flags::none());
c.push_parser("ITSlashMonthFormatParser", Flags::none());
c.push_parser("ITTimeExpressionParser", Flags::of(&[("strictMode", false)]));
c.push_parser("ITTimeUnitAgoFormatParser", Flags::of(&[("strictMode", false)]));
c.push_parser("ITTimeUnitLaterFormatParser", Flags::of(&[("strictMode", false)]));
c.push_parser("ITCasualDateParser", Flags::none());
c.push_parser("ITCasualTimeParser", Flags::none());
c.push_parser("ITMonthNameParser", Flags::none());
c.push_parser("ITRelativeDateFormatParser", Flags::none());
c.push_parser("ITTimeUnitCasualRelativeFormatParser", Flags::of(&[("allowAbbreviations", true)]));
c.push_refiner("OverlapRemovalRefiner", Flags::none());
c.push_refiner("ITMergeRelativeAfterDateRefiner", Flags::none());
c.push_refiner("ITMergeRelativeFollowByDateRefiner", Flags::none());
c.push_refiner("OverlapRemovalRefiner", Flags::none());
c.push_refiner("ExtractTimezoneOffsetRefiner", Flags::none());
c.push_refiner("MergeWeekdayComponentRefiner", Flags::none());
c.push_refiner("ITMergeDateTimeRefiner", 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.push_refiner("ITMergeDateTimeRefiner", Flags::none());
c.push_refiner("ITExtractYearSuffixRefiner", Flags::none());
c.push_refiner("ITMergeDateRangeRefiner", Flags::none());
c.push_refiner("ITUnlikelyFormatFilter", Flags::none());
c
}
pub fn strict() -> Configuration {
let mut c = Configuration::default();
c.push_parser("ITYearMonthDayParser", Flags::of(&[("strictMonthDateOrder", true)]));
c.push_parser("ISOFormatParser", Flags::none());
c.push_parser("SlashDateFormatParser", Flags::of(&[("littleEndian", true)]));
c.push_parser("ITTimeUnitWithinFormatParser", Flags::of(&[("strictMode", true)]));
c.push_parser("ITMonthNameLittleEndianParser", Flags::none());
c.push_parser("ITMonthNameMiddleEndianParser", Flags::of(&[("shouldSkipYearLikeDate", true)]));
c.push_parser("ITWeekdayParser", Flags::none());
c.push_parser("ITSlashMonthFormatParser", Flags::none());
c.push_parser("ITTimeExpressionParser", Flags::of(&[("strictMode", true)]));
c.push_parser("ITTimeUnitAgoFormatParser", Flags::of(&[("strictMode", true)]));
c.push_parser("ITTimeUnitLaterFormatParser", Flags::of(&[("strictMode", true)]));
c.push_refiner("OverlapRemovalRefiner", Flags::none());
c.push_refiner("ITMergeRelativeAfterDateRefiner", Flags::none());
c.push_refiner("ITMergeRelativeFollowByDateRefiner", Flags::none());
c.push_refiner("OverlapRemovalRefiner", Flags::none());
c.push_refiner("ExtractTimezoneOffsetRefiner", Flags::none());
c.push_refiner("MergeWeekdayComponentRefiner", Flags::none());
c.push_refiner("ITMergeDateTimeRefiner", 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.push_refiner("ITMergeDateTimeRefiner", Flags::none());
c.push_refiner("ITExtractYearSuffixRefiner", Flags::none());
c.push_refiner("ITMergeDateRangeRefiner", Flags::none());
c
}