From 377d8f4f8e4d475732837d18e74c26dde821a977 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Thu, 30 Jan 2025 13:06:55 -0600 Subject: [PATCH 1/4] chore: Upgrade to 0.6.26 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index db84fd7..e292f5a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -33,9 +33,9 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "winnow" -version = "0.6.0" +version = "0.6.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1dbce9e90e5404c5a52ed82b1d13fc8cfbdad85033b6f57546ffd1265f8451" +checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" dependencies = [ "memchr", ] diff --git a/Cargo.toml b/Cargo.toml index b6b30ed..2449d52 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -112,7 +112,7 @@ pre-release-replacements = [ ] [dependencies] -winnow = "0.6.0" +winnow = "0.6.26" itertools = "0.14" [dev-dependencies] From 769acb2e7360e6383890dd10487b0a6f759b0b1b Mon Sep 17 00:00:00 2001 From: Ed Page Date: Thu, 30 Jan 2025 13:07:21 -0600 Subject: [PATCH 2/4] refactor: Resolve deprecations --- src/quote.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/quote.rs b/src/quote.rs index 10cc2ee..96473c8 100644 --- a/src/quote.rs +++ b/src/quote.rs @@ -20,12 +20,12 @@ pub fn sq_dequote_step<'i>(input: &mut &'i str) -> Result, QuoteErr sq_dequote.parse_next(input).map_err(|_e| QuoteError) } -pub fn sq_dequote<'i>(input: &mut &'i str) -> PResult, ()> { +pub fn sq_dequote<'i>(input: &mut &'i str) -> ModalResult, ()> { // See git's quote.c's `sq_dequote_step` alt((sq_dequote_escaped, sq_dequote_no_escaped)).parse_next(input) } -fn sq_dequote_escaped<'i>(input: &mut &'i str) -> PResult, ()> { +fn sq_dequote_escaped<'i>(input: &mut &'i str) -> ModalResult, ()> { ( sq_dequote_section, sq_dequote_trail, @@ -40,22 +40,22 @@ fn sq_dequote_escaped<'i>(input: &mut &'i str) -> PResult, ()> { .parse_next(input) } -fn sq_dequote_no_escaped<'i>(input: &mut &'i str) -> PResult, ()> { +fn sq_dequote_no_escaped<'i>(input: &mut &'i str) -> ModalResult, ()> { sq_dequote_section.map(Cow::Borrowed).parse_next(input) } -fn sq_dequote_section<'i>(input: &mut &'i str) -> PResult<&'i str, ()> { +fn sq_dequote_section<'i>(input: &mut &'i str) -> ModalResult<&'i str, ()> { terminated(preceded('\'', take_while(0.., |c| c != '\'')), '\'').parse_next(input) } -fn sq_dequote_trail<'i>(input: &mut &'i str) -> PResult<[&'i str; 2], ()> { +fn sq_dequote_trail<'i>(input: &mut &'i str) -> ModalResult<[&'i str; 2], ()> { (escaped, sq_dequote_section) .map(|(e, s)| [e, s]) .parse_next(input) } -fn escaped<'i>(input: &mut &'i str) -> PResult<&'i str, ()> { - preceded('\\', one_of(['\'', '!']).recognize()).parse_next(input) +fn escaped<'i>(input: &mut &'i str) -> ModalResult<&'i str, ()> { + preceded('\\', one_of(['\'', '!']).take()).parse_next(input) } #[cfg(test)] From 49d1180746337269d4adf5279b7a03073c1c19e2 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Thu, 30 Jan 2025 13:07:49 -0600 Subject: [PATCH 3/4] chore: Upgrade to Winnow 0.7 --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e292f5a..886a1b1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -33,9 +33,9 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "winnow" -version = "0.6.26" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" +checksum = "7e49d2d35d3fad69b39b94139037ecfb4f359f08958b9c11e7315ce770462419" dependencies = [ "memchr", ] diff --git a/Cargo.toml b/Cargo.toml index 2449d52..537d77d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -112,7 +112,7 @@ pre-release-replacements = [ ] [dependencies] -winnow = "0.6.26" +winnow = "0.7.0" itertools = "0.14" [dev-dependencies] From 3a5150a72101a6bfdc9efd339d1467934dad3eb5 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Thu, 30 Jan 2025 13:08:20 -0600 Subject: [PATCH 4/4] perf: Remove ErrMode --- src/quote.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/quote.rs b/src/quote.rs index 96473c8..48cdf99 100644 --- a/src/quote.rs +++ b/src/quote.rs @@ -4,6 +4,7 @@ use itertools::Itertools; use winnow::combinator::{alt, preceded, repeat, terminated}; use winnow::prelude::*; use winnow::token::{one_of, take_while}; +use winnow::Result; #[derive(Debug)] pub struct QuoteError; @@ -20,12 +21,13 @@ pub fn sq_dequote_step<'i>(input: &mut &'i str) -> Result, QuoteErr sq_dequote.parse_next(input).map_err(|_e| QuoteError) } -pub fn sq_dequote<'i>(input: &mut &'i str) -> ModalResult, ()> { +#[allow(clippy::result_unit_err)] +pub fn sq_dequote<'i>(input: &mut &'i str) -> Result, ()> { // See git's quote.c's `sq_dequote_step` alt((sq_dequote_escaped, sq_dequote_no_escaped)).parse_next(input) } -fn sq_dequote_escaped<'i>(input: &mut &'i str) -> ModalResult, ()> { +fn sq_dequote_escaped<'i>(input: &mut &'i str) -> Result, ()> { ( sq_dequote_section, sq_dequote_trail, @@ -40,21 +42,21 @@ fn sq_dequote_escaped<'i>(input: &mut &'i str) -> ModalResult, ()> .parse_next(input) } -fn sq_dequote_no_escaped<'i>(input: &mut &'i str) -> ModalResult, ()> { +fn sq_dequote_no_escaped<'i>(input: &mut &'i str) -> Result, ()> { sq_dequote_section.map(Cow::Borrowed).parse_next(input) } -fn sq_dequote_section<'i>(input: &mut &'i str) -> ModalResult<&'i str, ()> { +fn sq_dequote_section<'i>(input: &mut &'i str) -> Result<&'i str, ()> { terminated(preceded('\'', take_while(0.., |c| c != '\'')), '\'').parse_next(input) } -fn sq_dequote_trail<'i>(input: &mut &'i str) -> ModalResult<[&'i str; 2], ()> { +fn sq_dequote_trail<'i>(input: &mut &'i str) -> Result<[&'i str; 2], ()> { (escaped, sq_dequote_section) .map(|(e, s)| [e, s]) .parse_next(input) } -fn escaped<'i>(input: &mut &'i str) -> ModalResult<&'i str, ()> { +fn escaped<'i>(input: &mut &'i str) -> Result<&'i str, ()> { preceded('\\', one_of(['\'', '!']).take()).parse_next(input) }