From d43d6c908fa6977ce4543562b8ce6848d37d8863 Mon Sep 17 00:00:00 2001 From: Noah Hellman Date: Fri, 12 May 2023 19:53:52 +0200 Subject: [PATCH] attr: valid, ret byte len not char count --- src/attr.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/attr.rs b/src/attr.rs index ccc2d6e..1afa494 100644 --- a/src/attr.rs +++ b/src/attr.rs @@ -14,7 +14,7 @@ pub fn valid>(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 = "{}";