use chrono::FixedOffset;
pub(super) static DATE_D_M_Y: &[&str] = &[
"%d-%m-%Y", "%d/%m/%Y", ];
pub(super) static DATE_Y_M_D: &[&str] = &[
"%Y/%m/%d", "%Y-%m-%d", ];
pub(super) static DATETIME_D_M_Y: &[&str] = &[
"%d/%m/%Y %H:%M:%S",
"%d-%m-%Y %H:%M",
"%d-%m-%Y %H:%M:%S",
"%d-%m-%YT%H:%M:%S.%3f",
"%d-%m-%YT%H:%M:%S.%6f",
"%d-%m-%YT%H:%M:%S.%9f",
"%d/%m/%Y 00:00:00",
"%d-%m-%Y 00:00:00",
"%d-%m-%Y",
];
pub(super) static DATETIME_Y_M_D: &[&str] = &[
"%Y/%m/%dT%H:%M:%S",
"%Y-%m-%dT%H:%M:%S",
"%Y/%m/%dT%H%M%S",
"%Y-%m-%dT%H%M%S",
"%Y/%m/%dT%H:%M",
"%Y-%m-%dT%H:%M",
"%Y/%m/%dT%H%M",
"%Y-%m-%dT%H%M",
"%Y/%m/%dT%H:%M:%S.%9f",
"%Y-%m-%dT%H:%M:%S.%9f",
"%Y/%m/%dT%H:%M:%S.%6f",
"%Y-%m-%dT%H:%M:%S.%6f",
"%Y/%m/%dT%H:%M:%S.%3f",
"%Y-%m-%dT%H:%M:%S.%3f",
"%Y/%m/%dT%H%M%S.%9f",
"%Y-%m-%dT%H%M%S.%9f",
"%Y/%m/%dT%H%M%S.%6f",
"%Y-%m-%dT%H%M%S.%6f",
"%Y/%m/%dT%H%M%S.%3f",
"%Y-%m-%dT%H%M%S.%3f",
"%Y/%m/%d",
"%Y-%m-%d",
"%Y/%m/%d %H:%M:%S",
"%Y-%m-%d %H:%M:%S",
"%Y/%m/%d %H%M%S",
"%Y-%m-%d %H%M%S",
"%Y/%m/%d %H:%M",
"%Y-%m-%d %H:%M",
"%Y/%m/%d %H%M",
"%Y-%m-%d %H%M",
"%Y/%m/%d %H:%M:%S.%9f",
"%Y-%m-%d %H:%M:%S.%9f",
"%Y/%m/%d %H:%M:%S.%6f",
"%Y-%m-%d %H:%M:%S.%6f",
"%Y/%m/%d %H:%M:%S.%3f",
"%Y-%m-%d %H:%M:%S.%3f",
"%Y/%m/%d %H%M%S.%9f",
"%Y-%m-%d %H%M%S.%9f",
"%Y/%m/%d %H%M%S.%6f",
"%Y-%m-%d %H%M%S.%6f",
"%Y/%m/%d %H%M%S.%3f",
"%Y-%m-%d %H%M%S.%3f",
"%FT%H:%M:%S%.f",
];
pub(super) static DATETIME_Y_M_D_Z: &[&str] = &[
"%Y/%m/%dT%H:%M:%S%#z",
"%Y-%m-%dT%H:%M:%S%#z",
"%Y/%m/%dT%H%M%S%#z",
"%Y-%m-%dT%H%M%S%#z",
"%Y/%m/%dT%H:%M%#z",
"%Y-%m-%dT%H:%M%#z",
"%Y/%m/%dT%H%M%#z",
"%Y-%m-%dT%H%M%#z",
"%Y/%m/%dT%H:%M:%S.%9f%#z",
"%Y-%m-%dT%H:%M:%S.%9f%#z",
"%Y/%m/%dT%H:%M:%S.%6f%#z",
"%Y-%m-%dT%H:%M:%S.%6f%#z",
"%Y/%m/%dT%H:%M:%S.%3f%#z",
"%Y-%m-%dT%H:%M:%S.%3f%#z",
"%Y/%m/%dT%H%M%S.%9f%#z",
"%Y-%m-%dT%H%M%S.%9f%#z",
"%Y/%m/%dT%H%M%S.%6f%#z",
"%Y-%m-%dT%H%M%S.%6f%#z",
"%Y/%m/%dT%H%M%S.%3f%#z",
"%Y-%m-%dT%H%M%S.%3f%#z",
"%Y/%m/%d %H:%M:%S%#z",
"%Y-%m-%d %H:%M:%S%#z",
"%Y/%m/%d %H%M%S%#z",
"%Y-%m-%d %H%M%S%#z",
"%Y/%m/%d %H:%M%#z",
"%Y-%m-%d %H:%M%#z",
"%Y/%m/%d %H%M%#z",
"%Y-%m-%d %H%M%#z",
"%Y/%m/%d %H:%M:%S.%9f%#z",
"%Y-%m-%d %H:%M:%S.%9f%#z",
"%Y/%m/%d %H:%M:%S.%6f%#z",
"%Y-%m-%d %H:%M:%S.%6f%#z",
"%Y/%m/%d %H:%M:%S.%3f%#z",
"%Y-%m-%d %H:%M:%S.%3f%#z",
"%Y/%m/%d %H%M%S.%9f%#z",
"%Y-%m-%d %H%M%S.%9f%#z",
"%Y/%m/%d %H%M%S.%6f%#z",
"%Y-%m-%d %H%M%S.%6f%#z",
"%Y/%m/%d %H%M%S.%3f%#z",
"%Y-%m-%d %H%M%S.%3f%#z",
"%+",
];
#[derive(Eq, Hash, PartialEq, Clone, Copy, Debug)]
pub enum Pattern {
DateDMY,
DateYMD,
DatetimeYMD,
DatetimeDMY,
DatetimeYMDZ,
}
#[derive(Clone)]
pub struct PatternWithOffset {
pub pattern: Pattern,
pub offset: Option<FixedOffset>,
}