use std::sync::LazyLock;
use regex_lite::Regex;
pub static INVALID_DATE: LazyLock<Regex> = LazyLock::new(|| {
Regex::new(r"^(?:(?:Invalid )?Date(?: is invalid)? \[(.+?)](?: invalid)?|Invalid date: (.+))$").unwrap()
});
pub static DATE_TOO_OLD: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^Date(?: is older than \d+ days)? \[(\d{8})](?: too old)?$").unwrap());
pub static DATE_TOO_NEW: LazyLock<Regex> = LazyLock::new(|| {
Regex::new(r"^(?:Date(?: is in the future)?|Invalid future date) \[(\d{8})](?: too new)?$").unwrap()
});
pub static GENERATION_OR_EXPORT_TOO_HIGH: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^(Generation|Export) \[(.+?)] too high for system size \[(\d+)] on (\d{8})$").unwrap());
pub static EXPORT_EXCEEDS_GENERATION: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^Export \[(.+?)] cannot exceed generation \[(.?+)] by 15%$").unwrap());
pub static CONSUMPTION_TOO_HIGH: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^Consumption \[(.+?)] too high on (\d{8})$").unwrap());
pub static PEAK_POWER_TOO_HIGH: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^Peak power \[(.+?)] too high for system size \[(\d+)] on (\d{8})$").unwrap());
pub static TEMPERATURE_MISSING: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^(Min|Max) temp missing on \[(\d{8})]$").unwrap());
pub static INVALID_TIME: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^(?:(?:Invalid Time|Time is invalid) \[(.+?)]|Invalid time: (.+))$").unwrap());
pub static PRODUCTION_TOO_HIGH: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^(Power|Energy) value \[(.+?)] too high for system size \[(\d+)]$").unwrap());
pub static ENERGY_TOO_HIGH_FOR_TIME: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^Energy value \[(.+?)] too high for \[(\d\d?):(\d\d)]$").unwrap());
pub static INVALID_DATA_FORMAT: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^Invalid data format \[(.+?)]$").unwrap());
pub static MISSING_EXTENDED_DATA_FIELD: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^Missing v(\d\d?) (unit|label) \(v\d\d?[ul]\)$").unwrap());
pub static EXTENDED_DATA_FIELD_TOO_LONG: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^v(\d\d?) (unit|label) \(v\d\d?[ul]\) too long \(\d+\)$").unwrap());
pub static INVALID_EXTENDED_DATA_GRAPH: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^Invalid v(\d\d?) graph type$").unwrap());
pub static INVALID_EXTENDED_DATA_AXIS: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^v(\d\d?) axis \(v\d\d?a\) not between \d+ and \d+$").unwrap());
pub static INVALID_EXTENDED_DATA_COLOUR: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^v(\d\d?) colour \(v\d\d?c\) not a valid hex colour code \[a-f0-9]\{6}$").unwrap());