git.delta.rocks / jrsonnet / refs/commits / 11b9a15dfb34

difftreelog

fix faster std.format skips last string element

Лач2020-07-21parent: #d96a379.patch.diff
in: master

1 file changed

modifiedcrates/jrsonnet-evaluator/src/builtin/format.rsdiffbeforeafterboth
252 while offset != bytes.len() && bytes[offset] != b'%' {252 while offset != bytes.len() && bytes[offset] != b'%' {
253 offset += 1;253 offset += 1;
254 }254 }
255 if offset != 0 {
256 out.push(Element::String(&str[0..offset]));
257 }
255 if offset == bytes.len() {258 if offset == bytes.len() {
256 return Ok(out);259 return Ok(out);
257 }260 }
258 out.push(Element::String(&str[0..offset]));
259 str = &str[offset + 1..];261 str = &str[offset + 1..];
260 let (code, nstr) = parse_code(str)?;262 let (code, nstr) = parse_code(str)?;
261 str = nstr;263 str = nstr;
696698
697 #[test]699 #[test]
698 fn parse() {700 fn parse() {
699 println!("{:?}", parse_codes("Hello %s world!!! %s %(aaa)s ww"));701 assert_eq!(
702 parse_codes(
703 "How much error budget is left looking at our %.3f%% availability gurantees?"
704 )
705 .unwrap()
706 .len(),
707 4
708 );
700 }709 }
701710