formualizer_eval/
locale.rs

1/// Minimal locale model for culture-invariant parsing and case folding.
2#[derive(Copy, Clone, Debug, Eq, PartialEq)]
3pub struct Locale;
4
5impl Locale {
6    pub const fn invariant() -> Self {
7        Locale
8    }
9
10    /// Parse a number using invariant rules (ASCII, dot decimal separator).
11    pub fn parse_number_invariant(&self, s: &str) -> Option<f64> {
12        s.trim().parse::<f64>().ok()
13    }
14
15    /// Case folding for comparisons; invariant = ASCII lower.
16    pub fn fold_case_invariant(&self, s: &str) -> String {
17        s.to_ascii_lowercase()
18    }
19}