Skip to content

Commit a663e9f

Browse files
authored
Merge pull request #1290 from epage/winnow
Update winnow to 0.6
2 parents a86a5c0 + e175b20 commit a663e9f

File tree

14 files changed

+55
-41
lines changed

14 files changed

+55
-41
lines changed

Cargo.lock

Lines changed: 23 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gix-actor/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ gix-date = { version = "^0.8.3", path = "../gix-date" }
2323
thiserror = "1.0.38"
2424
btoi = "0.4.2"
2525
bstr = { version = "1.3.0", default-features = false, features = ["std", "unicode"]}
26-
winnow = { version = "0.5.36", features = ["simd"] }
26+
winnow = { version = "0.6.0", features = ["simd"] }
2727
itoa = "1.0.1"
2828
serde = { version = "1.0.114", optional = true, default-features = false, features = ["derive"]}
2929

gix-actor/src/signature/decode.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ mod tests {
162162
.map_err(to_bstr_err)
163163
.expect_err("parse fails as > is missing")
164164
.to_string(),
165-
"in slice at ' 12345 -1215'\n 0: expected `<email>` at ' 12345 -1215'\n 1: expected `<name> <<email>>` at ' 12345 -1215'\n 2: expected `<name> <<email>> <timestamp> <+|-><HHMM>` at ' 12345 -1215'\n"
165+
"in slice at ' 12345 -1215'\n 0: expected `<email>` at ' 12345 -1215'\n 1: expected `<name> <<email>>` at 'hello < 12345 -1215'\n 2: expected `<name> <<email>> <timestamp> <+|-><HHMM>` at 'hello < 12345 -1215'\n"
166166
);
167167
}
168168

@@ -173,7 +173,7 @@ mod tests {
173173
.map_err(to_bstr_err)
174174
.expect_err("parse fails as > is missing")
175175
.to_string(),
176-
"in predicate verification at 'abc -1215'\n 0: expected `<timestamp>` at 'abc -1215'\n 1: expected `<name> <<email>> <timestamp> <+|-><HHMM>` at 'abc -1215'\n"
176+
"in predicate verification at 'abc -1215'\n 0: expected `<timestamp>` at 'abc -1215'\n 1: expected `<name> <<email>> <timestamp> <+|-><HHMM>` at 'hello <> abc -1215'\n"
177177
);
178178
}
179179
}

gix-config/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ gix-sec = { version = "^0.10.4", path = "../gix-sec" }
2424
gix-ref = { version = "^0.42.0", path = "../gix-ref" }
2525
gix-glob = { version = "^0.16.0", path = "../gix-glob" }
2626

27-
winnow = { version = "0.5.36", features = ["simd"] }
27+
winnow = { version = "0.6.0", features = ["simd"] }
2828
memchr = "2"
2929
thiserror = "1.0.26"
3030
unicode-bom = "2.0.2"

gix-config/src/parse/nom/mod.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,10 @@ pub fn from_bytes<'i>(mut input: &'i [u8], dispatch: &mut dyn FnMut(Event<'i>))
7171
Ok(())
7272
}
7373

74-
fn newlines_from(input: &[u8], start: winnow::stream::Checkpoint<&[u8]>) -> usize {
74+
fn newlines_from(input: &[u8], start: winnow::stream::Checkpoint<&[u8], &[u8]>) -> usize {
7575
let offset = input.offset_from(&start);
7676
let mut start_input = input;
77-
start_input.reset(start);
77+
start_input.reset(&start);
7878
start_input.next_slice(offset).iter().filter(|c| **c == b'\n').count()
7979
}
8080

@@ -97,7 +97,7 @@ fn section<'i>(
9797
) -> PResult<(), NomError<&'i [u8]>> {
9898
let start = i.checkpoint();
9999
let header = section_header(i).map_err(|e| {
100-
i.reset(start);
100+
i.reset(&start);
101101
e
102102
})?;
103103
dispatch(Event::SectionHeader(header));
@@ -277,17 +277,17 @@ fn value_impl<'i>(i: &mut &'i [u8], dispatch: &mut dyn FnMut(Event<'i>)) -> PRes
277277
let escaped_index = i.offset_from(&value_start_checkpoint);
278278
let escape_index = escaped_index - 1;
279279
let Some(mut c) = i.next_token() else {
280-
i.reset(start_checkpoint);
280+
i.reset(&start_checkpoint);
281281
return Err(winnow::error::ErrMode::from_error_kind(i, ErrorKind::Token));
282282
};
283283
let mut consumed = 1;
284284
if c == b'\r' {
285285
c = i.next_token().ok_or_else(|| {
286-
i.reset(start_checkpoint);
286+
i.reset(&start_checkpoint);
287287
winnow::error::ErrMode::from_error_kind(i, ErrorKind::Token)
288288
})?;
289289
if c != b'\n' {
290-
i.reset(start_checkpoint);
290+
i.reset(&start_checkpoint);
291291
return Err(winnow::error::ErrMode::from_error_kind(i, ErrorKind::Slice));
292292
}
293293
consumed += 1;
@@ -297,7 +297,7 @@ fn value_impl<'i>(i: &mut &'i [u8], dispatch: &mut dyn FnMut(Event<'i>)) -> PRes
297297
b'\n' => {
298298
partial_value_found = true;
299299

300-
i.reset(value_start_checkpoint);
300+
i.reset(&value_start_checkpoint);
301301

302302
let value = i.next_slice(escape_index).as_bstr();
303303
dispatch(Event::ValueNotDone(Cow::Borrowed(value)));
@@ -312,7 +312,7 @@ fn value_impl<'i>(i: &mut &'i [u8], dispatch: &mut dyn FnMut(Event<'i>)) -> PRes
312312
}
313313
b'n' | b't' | b'\\' | b'b' | b'"' => {}
314314
_ => {
315-
i.reset(start_checkpoint);
315+
i.reset(&start_checkpoint);
316316
return Err(winnow::error::ErrMode::from_error_kind(i, ErrorKind::Token));
317317
}
318318
}
@@ -325,7 +325,7 @@ fn value_impl<'i>(i: &mut &'i [u8], dispatch: &mut dyn FnMut(Event<'i>)) -> PRes
325325
}
326326
}
327327
if is_in_quotes {
328-
i.reset(start_checkpoint);
328+
i.reset(&start_checkpoint);
329329
return Err(winnow::error::ErrMode::from_error_kind(i, ErrorKind::Slice));
330330
}
331331

@@ -342,7 +342,7 @@ fn value_impl<'i>(i: &mut &'i [u8], dispatch: &mut dyn FnMut(Event<'i>)) -> PRes
342342
Some(idx) => idx,
343343
};
344344

345-
i.reset(value_start_checkpoint);
345+
i.reset(&value_start_checkpoint);
346346
let value_end_no_trailing_whitespace = i[..value_end]
347347
.iter()
348348
.enumerate()

gix-object/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ btoi = "0.4.2"
3838
itoa = "1.0.1"
3939
thiserror = "1.0.34"
4040
bstr = { version = "1.3.0", default-features = false, features = ["std", "unicode"] }
41-
winnow = { version = "0.5.36", features = ["simd"] }
41+
winnow = { version = "0.6.0", features = ["simd"] }
4242
smallvec = { version = "1.4.0", features = ["write"] }
4343
serde = { version = "1.0.114", optional = true, default-features = false, features = ["derive"]}
4444

gix-object/src/commit/decode.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use winnow::{
55
combinator::{alt, eof, opt, preceded, repeat, rest, terminated},
66
error::{AddContext, ParserError, StrContext},
77
prelude::*,
8+
stream::Stream as _,
89
token::take_till,
910
};
1011

@@ -15,9 +16,13 @@ pub fn message<'a, E: ParserError<&'a [u8]> + AddContext<&'a [u8], StrContext>>(
1516
) -> PResult<&'a BStr, E> {
1617
if i.is_empty() {
1718
// newline + [message]
19+
let start = i.checkpoint();
1820
return Err(
19-
winnow::error::ErrMode::from_error_kind(i, winnow::error::ErrorKind::Eof)
20-
.add_context(i, StrContext::Expected("newline + <message>".into())),
21+
winnow::error::ErrMode::from_error_kind(i, winnow::error::ErrorKind::Eof).add_context(
22+
i,
23+
&start,
24+
StrContext::Expected("newline + <message>".into()),
25+
),
2126
);
2227
}
2328
preceded(NL, rest.map(ByteSlice::as_bstr))

gix-object/src/commit/message/decode.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ fn subject_and_body<'a, E: ParserError<&'a [u8]>>(i: &mut &'a [u8]) -> PResult<(
3737
}
3838
}
3939

40-
i.reset(start);
40+
i.reset(&start);
4141
rest.map(|r: &[u8]| (r.as_bstr(), None)).parse_next(i)
4242
}
4343

gix-protocol/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ gix-credentials = { version = "^0.24.0", path = "../gix-credentials" }
4949
thiserror = "1.0.32"
5050
serde = { version = "1.0.114", optional = true, default-features = false, features = ["derive"]}
5151
bstr = { version = "1.3.0", default-features = false, features = ["std", "unicode"] }
52-
winnow = { version = "0.5.36", features = ["simd"] }
52+
winnow = { version = "0.6.0", features = ["simd"] }
5353
btoi = "0.4.2"
5454

5555
# for async-client

gix-protocol/src/remote_progress.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use bstr::ByteSlice;
44
use winnow::{
55
combinator::{opt, preceded, terminated},
66
prelude::*,
7-
token::{tag, take_till},
7+
token::take_till,
88
};
99

1010
/// The information usually found in remote progress messages as sent by a git server during
@@ -85,7 +85,7 @@ fn next_optional_percentage(i: &mut &[u8]) -> PResult<Option<u32>, ()> {
8585
take_till(0.., |c: u8| c.is_ascii_digit()),
8686
parse_number.try_map(u32::try_from),
8787
),
88-
tag(b"%"),
88+
b"%",
8989
))
9090
.parse_next(i)
9191
}

gix-ref/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ gix-lock = { version = "^13.0.0", path = "../gix-lock" }
3232
gix-tempfile = { version = "^13.0.0", default-features = false, path = "../gix-tempfile" }
3333

3434
thiserror = "1.0.34"
35-
winnow = { version = "0.5.36", features = ["simd"] }
35+
winnow = { version = "0.6.0", features = ["simd"] }
3636
serde = { version = "1.0.114", optional = true, default-features = false, features = ["derive"]}
3737

3838
# packed refs

gix-ref/src/store/packed/iter.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ impl<'a> Iterator for packed::Iter<'a> {
4646
Some(Ok(reference))
4747
}
4848
Err(_) => {
49-
self.cursor.reset(start);
49+
self.cursor.reset(&start);
5050
let (failed_line, next_cursor) = self
5151
.cursor
5252
.find_byte(b'\n')

tests/tools/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ gix-worktree = "0.26"
2121
gix-fs = { version = "^0.10.0", path = "../../gix-fs" }
2222
gix-tempfile = { version = "^13.0.0", default-features = false, features = ["signals"], path = "../../gix-tempfile" }
2323

24-
winnow = { version = "0.5.36", features = ["simd"] }
24+
winnow = { version = "0.6.0", features = ["simd"] }
2525
fastrand = "2.0.0"
2626
bstr = { version = "1.5.0", default-features = false }
2727
crc = "3.0.0"

tests/tools/src/lib.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use std::{
1212
};
1313

1414
pub use bstr;
15-
use bstr::{BStr, ByteSlice};
15+
use bstr::ByteSlice;
1616
use io_close::Close;
1717
pub use is_ci;
1818
pub use once_cell;
@@ -697,9 +697,9 @@ fn extract_archive(
697697
/// Transform a verbose parser errors from raw bytes into a `BStr` to make printing/debugging human-readable.
698698
pub fn to_bstr_err(
699699
err: winnow::error::ErrMode<winnow::error::TreeError<&[u8], winnow::error::StrContext>>,
700-
) -> winnow::error::TreeError<&BStr, winnow::error::StrContext> {
700+
) -> winnow::error::TreeError<&winnow::stream::BStr, winnow::error::StrContext> {
701701
let err = err.into_inner().expect("not a streaming parser");
702-
err.map_input(ByteSlice::as_bstr)
702+
err.map_input(winnow::stream::BStr::new)
703703
}
704704

705705
fn family_name() -> &'static str {

0 commit comments

Comments
 (0)