attr: valid, ret byte len not char count

This commit is contained in:
Noah Hellman 2023-05-12 19:53:52 +02:00
parent 599b712f36
commit d43d6c908f

View file

@ -14,7 +14,7 @@ pub fn valid<I: Iterator<Item = char>>(chars: I) -> usize {
let mut n = 0;
let mut state = Start;
for c in chars {
n += 1;
n += c.len_utf8();
state = state.step(c);
match state {
Done | Invalid => break,
@ -520,6 +520,12 @@ mod test {
assert_eq!(super::valid(src.chars()), src.len());
}
#[test]
fn valid_unicode() {
let src = r#"{a="б"}"#;
assert_eq!(super::valid(src.chars()), src.len());
}
#[test]
fn valid_empty() {
let src = "{}";