git.delta.rocks / jrsonnet / refs/commits / 94c438bdfffb

difftreelog

perf memchr in string block lexing/parsing

tkwxwzpwYaroslav Bolyukin2026-03-23parent: #7eb771f.patch.diff
in: master

1 file changed

modifiedcrates/jrsonnet-lexer/src/string_block.rsdiffbeforeafterboth
228 debug_assert_ne!(num_whitespace, 0, "Unexpected value for num_whitespace");228 debug_assert_ne!(num_whitespace, 0, "Unexpected value for num_whitespace");
229 ctx.skip(num_whitespace);229 ctx.skip(num_whitespace);
230230
231 let line_start = ctx.index;231 let rest = ctx.rest();
232 let mut line_size = 0;
233 loop {
234 match ctx.next() {232 match rest.find('\n') {
235 None => {233 None => {
234 ctx.index = ctx.source.len();
236 lex.eat_error(&ctx);235 lex.eat_error(&ctx);
237 return Err(UnexpectedEnd);236 return Err(UnexpectedEnd);
238 }237 }
239 Some('\n') => {238 Some(nl_pos) => {
240 lex.mark_line(&ctx.source[line_start..line_start + line_size]);239 lex.mark_line(&rest[..nl_pos]);
241 break;240 ctx.index += nl_pos + 1;
242 }241 }
243 Some(c) => {
244 line_size += c.len_utf8();
245 }
246 }242 }
247 }
248243
249 // Skip any blank lines244 // Skip any blank lines
250 while ctx.peek() == Some('\n') {245 while ctx.peek() == Some('\n') {