diff --git a/Cargo.lock b/Cargo.lock
index bdfdef1a..4a332d99 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1248,9 +1248,9 @@ checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
[[package]]
name = "winnow"
-version = "0.4.9"
+version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81a2094c43cc94775293eaa0e499fbc30048a6d824ac82c0351a8c0bf9112529"
+checksum = "81fac9742fd1ad1bd9643b991319f72dd031016d44b77039a26977eb667141e7"
dependencies = [
"memchr",
]
diff --git a/crates/toml_edit/Cargo.toml b/crates/toml_edit/Cargo.toml
index b51d2fc5..f7356616 100644
--- a/crates/toml_edit/Cargo.toml
+++ b/crates/toml_edit/Cargo.toml
@@ -38,7 +38,7 @@ unbounded = []
[dependencies]
indexmap = { version = "2.0.0", features = ["std"] }
-winnow = "0.4.9"
+winnow = "0.5.0"
serde = { version = "1.0.145", optional = true }
kstring = { version = "2.0.0", features = ["max_inline"], optional = true }
toml_datetime = { version = "0.6.3", path = "../toml_datetime" }
diff --git a/crates/toml_edit/src/parser/array.rs b/crates/toml_edit/src/parser/array.rs
index f37191d2..e3b1f3f5 100644
--- a/crates/toml_edit/src/parser/array.rs
+++ b/crates/toml_edit/src/parser/array.rs
@@ -13,8 +13,8 @@ use crate::parser::prelude::*;
// ;; Array
// array = array-open array-values array-close
-pub(crate) fn array<'i>(check: RecursionCheck) -> impl Parser, Array, ContextError<'i>> {
- trace("array", move |input| {
+pub(crate) fn array<'i>(check: RecursionCheck) -> impl Parser, Array, ContextError> {
+ trace("array", move |input: &mut Input<'i>| {
delimited(
ARRAY_OPEN,
cut_err(array_values(check)),
@@ -40,8 +40,8 @@ const ARRAY_SEP: u8 = b',';
// array-value / ws-comment-newline ]
pub(crate) fn array_values<'i>(
check: RecursionCheck,
-) -> impl Parser, Array, ContextError<'i>> {
- move |input| {
+) -> impl Parser, Array, ContextError> {
+ move |input: &mut Input<'i>| {
let check = check.recursing(input)?;
(
opt(
@@ -68,8 +68,8 @@ pub(crate) fn array_values<'i>(
pub(crate) fn array_value<'i>(
check: RecursionCheck,
-) -> impl Parser, Value, ContextError<'i>> {
- move |input| {
+) -> impl Parser, Value, ContextError> {
+ move |input: &mut Input<'i>| {
(
ws_comment_newline.span(),
value(check),
diff --git a/crates/toml_edit/src/parser/datetime.rs b/crates/toml_edit/src/parser/datetime.rs
index 0ab7ca22..6e89b977 100644
--- a/crates/toml_edit/src/parser/datetime.rs
+++ b/crates/toml_edit/src/parser/datetime.rs
@@ -21,7 +21,7 @@ use winnow::trace::trace;
// local-date = full-date
// local-time = partial-time
// full-time = partial-time time-offset
-pub(crate) fn date_time(input: Input<'_>) -> IResult, Datetime, ContextError<'_>> {
+pub(crate) fn date_time(input: &mut Input<'_>) -> PResult {
trace(
"date-time",
alt((
@@ -52,7 +52,7 @@ pub(crate) fn date_time(input: Input<'_>) -> IResult, Datetime, Contex
}
// full-date = date-fullyear "-" date-month "-" date-mday
-pub(crate) fn full_date(input: Input<'_>) -> IResult, Date, ContextError<'_>> {
+pub(crate) fn full_date(input: &mut Input<'_>) -> PResult {
trace(
"full-date",
(date_fullyear, b'-', cut_err((date_month, b'-', date_mday)))
@@ -62,7 +62,7 @@ pub(crate) fn full_date(input: Input<'_>) -> IResult, Date, ContextErr
}
// partial-time = time-hour ":" time-minute ":" time-second [time-secfrac]
-pub(crate) fn partial_time(input: Input<'_>) -> IResult, Time, ContextError<'_>> {
+pub(crate) fn partial_time(input: &mut Input<'_>) -> PResult