Skip to main content

sofie_core/
field_name.rs

1#[must_use]
2pub fn is_field_name(text: &str) -> bool {
3    !text.is_empty()
4        && text
5            .bytes()
6            .all(|byte| byte.is_ascii_alphanumeric() || byte == b'_')
7}
8
9#[cfg(test)]
10mod tests {
11    use super::*;
12
13    #[test]
14    fn a_field_name_is_ascii_letters_digits_and_underscores() {
15        for accepted in ["name", "line_2", "_", "A1"] {
16            assert!(is_field_name(accepted), "{accepted}");
17        }
18        for refused in ["", "a-b", "a.b", "a b", "a[0]", "รค"] {
19            assert!(!is_field_name(refused), "{refused}");
20        }
21    }
22}