summaryrefslogtreecommitdiffstats
path: root/vendor/toml_edit/src
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/toml_edit/src')
-rw-r--r--vendor/toml_edit/src/de/value.rs4
-rw-r--r--vendor/toml_edit/src/key.rs10
-rw-r--r--vendor/toml_edit/src/parser/array.rs6
-rw-r--r--vendor/toml_edit/src/parser/datetime.rs22
-rw-r--r--vendor/toml_edit/src/parser/document.rs12
-rw-r--r--vendor/toml_edit/src/parser/inline_table.rs8
-rw-r--r--vendor/toml_edit/src/parser/key.rs10
-rw-r--r--vendor/toml_edit/src/parser/numbers.rs124
-rw-r--r--vendor/toml_edit/src/parser/strings.rs56
-rw-r--r--vendor/toml_edit/src/parser/table.rs8
-rw-r--r--vendor/toml_edit/src/parser/trivia.rs46
-rw-r--r--vendor/toml_edit/src/parser/value.rs2
-rw-r--r--vendor/toml_edit/src/ser/value.rs11
-rw-r--r--vendor/toml_edit/src/table.rs14
14 files changed, 183 insertions, 150 deletions
diff --git a/vendor/toml_edit/src/de/value.rs b/vendor/toml_edit/src/de/value.rs
index 5726feb9e..39842875a 100644
--- a/vendor/toml_edit/src/de/value.rs
+++ b/vendor/toml_edit/src/de/value.rs
@@ -5,6 +5,9 @@ use crate::de::Error;
/// Deserialization implementation for TOML [values][crate::Value].
///
+/// Can be creater either directly from TOML strings, using [`std::str::FromStr`],
+/// or from parsed [values][crate::Value] using [`serde::de::IntoDeserializer::into_deserializer`].
+///
/// # Example
///
/// ```
@@ -24,7 +27,6 @@ use crate::de::Error;
/// let value = r#"{ title = 'TOML Example', owner = { name = 'Lisa' } }"#;
/// let deserializer = value.parse::<toml_edit::de::ValueDeserializer>().unwrap();
/// let config = Config::deserialize(deserializer).unwrap();
-///
/// assert_eq!(config.title, "TOML Example");
/// assert_eq!(config.owner.name, "Lisa");
/// ```
diff --git a/vendor/toml_edit/src/key.rs b/vendor/toml_edit/src/key.rs
index 203445a7b..b7038c36d 100644
--- a/vendor/toml_edit/src/key.rs
+++ b/vendor/toml_edit/src/key.rs
@@ -128,11 +128,17 @@ impl Key {
}
fn try_parse_simple(s: &str) -> Result<Key, crate::TomlError> {
- parser::parse_key(s)
+ let mut key = parser::parse_key(s)?;
+ key.despan(s);
+ Ok(key)
}
fn try_parse_path(s: &str) -> Result<Vec<Key>, crate::TomlError> {
- parser::parse_key_path(s)
+ let mut keys = parser::parse_key_path(s)?;
+ for key in &mut keys {
+ key.despan(s);
+ }
+ Ok(keys)
}
}
diff --git a/vendor/toml_edit/src/parser/array.rs b/vendor/toml_edit/src/parser/array.rs
index ad6687232..a99bb8241 100644
--- a/vendor/toml_edit/src/parser/array.rs
+++ b/vendor/toml_edit/src/parser/array.rs
@@ -1,7 +1,7 @@
use winnow::combinator::cut_err;
+use winnow::combinator::delimited;
use winnow::combinator::opt;
-use winnow::multi::separated1;
-use winnow::sequence::delimited;
+use winnow::combinator::separated1;
use crate::parser::trivia::ws_comment_newline;
use crate::parser::value::value;
@@ -57,7 +57,7 @@ pub(crate) fn array_values(
),
ws_comment_newline.span(),
)
- .map_res::<_, _, std::str::Utf8Error>(|(array, trailing)| {
+ .try_map::<_, _, std::str::Utf8Error>(|(array, trailing)| {
let (mut array, comma) = array.unwrap_or_default();
array.set_trailing_comma(comma);
array.set_trailing(RawString::with_span(trailing));
diff --git a/vendor/toml_edit/src/parser/datetime.rs b/vendor/toml_edit/src/parser/datetime.rs
index 89fd483a8..122a00f5a 100644
--- a/vendor/toml_edit/src/parser/datetime.rs
+++ b/vendor/toml_edit/src/parser/datetime.rs
@@ -5,12 +5,12 @@ use crate::parser::prelude::*;
use crate::parser::trivia::from_utf8_unchecked;
use toml_datetime::*;
-use winnow::branch::alt;
-use winnow::bytes::one_of;
-use winnow::bytes::take_while_m_n;
+use winnow::combinator::alt;
use winnow::combinator::cut_err;
use winnow::combinator::opt;
-use winnow::sequence::preceded;
+use winnow::combinator::preceded;
+use winnow::token::one_of;
+use winnow::token::take_while;
// ;; Date and Time (as defined in RFC 3339)
@@ -104,7 +104,7 @@ pub(crate) fn date_fullyear(input: Input<'_>) -> IResult<Input<'_>, u16, ParserE
// date-month = 2DIGIT ; 01-12
pub(crate) fn date_month(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError<'_>> {
unsigned_digits::<2, 2>
- .map_res(|s: &str| {
+ .try_map(|s: &str| {
let d = s.parse::<u8>().expect("2DIGIT should match u8");
if (1..=12).contains(&d) {
Ok(d)
@@ -118,7 +118,7 @@ pub(crate) fn date_month(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError
// date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on month/year
pub(crate) fn date_mday(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError<'_>> {
unsigned_digits::<2, 2>
- .map_res(|s: &str| {
+ .try_map(|s: &str| {
let d = s.parse::<u8>().expect("2DIGIT should match u8");
if (1..=31).contains(&d) {
Ok(d)
@@ -139,7 +139,7 @@ const TIME_DELIM: (u8, u8, u8) = (b'T', b't', b' ');
// time-hour = 2DIGIT ; 00-23
pub(crate) fn time_hour(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError<'_>> {
unsigned_digits::<2, 2>
- .map_res(|s: &str| {
+ .try_map(|s: &str| {
let d = s.parse::<u8>().expect("2DIGIT should match u8");
if (0..=23).contains(&d) {
Ok(d)
@@ -153,7 +153,7 @@ pub(crate) fn time_hour(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError<
// time-minute = 2DIGIT ; 00-59
pub(crate) fn time_minute(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError<'_>> {
unsigned_digits::<2, 2>
- .map_res(|s: &str| {
+ .try_map(|s: &str| {
let d = s.parse::<u8>().expect("2DIGIT should match u8");
if (0..=59).contains(&d) {
Ok(d)
@@ -167,7 +167,7 @@ pub(crate) fn time_minute(input: Input<'_>) -> IResult<Input<'_>, u8, ParserErro
// time-second = 2DIGIT ; 00-58, 00-59, 00-60 based on leap second rules
pub(crate) fn time_second(input: Input<'_>) -> IResult<Input<'_>, u8, ParserError<'_>> {
unsigned_digits::<2, 2>
- .map_res(|s: &str| {
+ .try_map(|s: &str| {
let d = s.parse::<u8>().expect("2DIGIT should match u8");
if (0..=60).contains(&d) {
Ok(d)
@@ -194,7 +194,7 @@ pub(crate) fn time_secfrac(input: Input<'_>) -> IResult<Input<'_>, u32, ParserEr
];
const INF: usize = usize::MAX;
preceded(b'.', unsigned_digits::<1, INF>)
- .map_res(|mut repr: &str| -> Result<u32, CustomError> {
+ .try_map(|mut repr: &str| -> Result<u32, CustomError> {
let max_digits = SCALE.len() - 1;
if max_digits < repr.len() {
// Millisecond precision is required. Further precision of fractional seconds is
@@ -217,7 +217,7 @@ pub(crate) fn time_secfrac(input: Input<'_>) -> IResult<Input<'_>, u32, ParserEr
pub(crate) fn unsigned_digits<const MIN: usize, const MAX: usize>(
input: Input<'_>,
) -> IResult<Input<'_>, &str, ParserError<'_>> {
- take_while_m_n(MIN, MAX, DIGIT)
+ take_while(MIN..=MAX, DIGIT)
.map(|b: &[u8]| unsafe { from_utf8_unchecked(b, "`is_ascii_digit` filters out on-ASCII") })
.parse_next(input)
}
diff --git a/vendor/toml_edit/src/parser/document.rs b/vendor/toml_edit/src/parser/document.rs
index 3ff75361c..791185b68 100644
--- a/vendor/toml_edit/src/parser/document.rs
+++ b/vendor/toml_edit/src/parser/document.rs
@@ -1,13 +1,13 @@
use std::cell::RefCell;
-use winnow::bytes::any;
-use winnow::bytes::one_of;
use winnow::combinator::cut_err;
use winnow::combinator::eof;
use winnow::combinator::opt;
use winnow::combinator::peek;
+use winnow::combinator::repeat;
use winnow::error::FromExternalError;
-use winnow::multi::many0;
+use winnow::token::any;
+use winnow::token::one_of;
use crate::document::Document;
use crate::key::Key;
@@ -38,7 +38,7 @@ pub(crate) fn document(input: Input<'_>) -> IResult<Input<'_>, Document, ParserE
// Remove BOM if present
opt(b"\xEF\xBB\xBF"),
parse_ws(state_ref),
- many0((
+ repeat(0.., (
dispatch! {peek(any);
crate::parser::trivia::COMMENT_START_SYMBOL => cut_err(parse_comment(state_ref)),
crate::parser::table::STD_TABLE_OPEN => cut_err(table(state_ref)),
@@ -104,7 +104,7 @@ pub(crate) fn keyval<'s, 'i>(
) -> impl FnMut(Input<'i>) -> IResult<Input<'i>, (), ParserError<'i>> + 's {
move |i| {
parse_keyval
- .map_res(|(p, kv)| state.borrow_mut().on_keyval(p, kv))
+ .try_map(|(p, kv)| state.borrow_mut().on_keyval(p, kv))
.parse_next(i)
}
}
@@ -128,7 +128,7 @@ pub(crate) fn parse_keyval(
),
)),
)
- .map_res::<_, _, std::str::Utf8Error>(|(key, (_, v))| {
+ .try_map::<_, _, std::str::Utf8Error>(|(key, (_, v))| {
let mut path = key;
let key = path.pop().expect("grammar ensures at least 1");
diff --git a/vendor/toml_edit/src/parser/inline_table.rs b/vendor/toml_edit/src/parser/inline_table.rs
index 7bec28723..0a75c2104 100644
--- a/vendor/toml_edit/src/parser/inline_table.rs
+++ b/vendor/toml_edit/src/parser/inline_table.rs
@@ -1,7 +1,7 @@
-use winnow::bytes::one_of;
use winnow::combinator::cut_err;
-use winnow::multi::separated0;
-use winnow::sequence::delimited;
+use winnow::combinator::delimited;
+use winnow::combinator::separated0;
+use winnow::token::one_of;
use crate::key::Key;
use crate::parser::errors::CustomError;
@@ -23,7 +23,7 @@ pub(crate) fn inline_table(
move |input| {
delimited(
INLINE_TABLE_OPEN,
- cut_err(inline_table_keyvals(check).map_res(|(kv, p)| table_from_pairs(kv, p))),
+ cut_err(inline_table_keyvals(check).try_map(|(kv, p)| table_from_pairs(kv, p))),
cut_err(INLINE_TABLE_CLOSE)
.context(Context::Expression("inline table"))
.context(Context::Expected(ParserValue::CharLiteral('}'))),
diff --git a/vendor/toml_edit/src/parser/key.rs b/vendor/toml_edit/src/parser/key.rs
index c3d4e7962..eda319307 100644
--- a/vendor/toml_edit/src/parser/key.rs
+++ b/vendor/toml_edit/src/parser/key.rs
@@ -1,9 +1,9 @@
use std::ops::RangeInclusive;
-use winnow::bytes::any;
-use winnow::bytes::take_while1;
use winnow::combinator::peek;
-use winnow::multi::separated1;
+use winnow::combinator::separated1;
+use winnow::token::any;
+use winnow::token::take_while;
use crate::key::Key;
use crate::parser::errors::CustomError;
@@ -29,7 +29,7 @@ pub(crate) fn key(input: Input<'_>) -> IResult<Input<'_>, Vec<Key>, ParserError<
DOT_SEP,
)
.context(Context::Expression("key"))
- .map_res(|k: Vec<_>| {
+ .try_map(|k: Vec<_>| {
// Inserting the key will require recursion down the line
RecursionCheck::check_depth(k.len())?;
Ok::<_, CustomError>(k)
@@ -58,7 +58,7 @@ pub(crate) fn simple_key(
// unquoted-key = 1*( ALPHA / DIGIT / %x2D / %x5F ) ; A-Z / a-z / 0-9 / - / _
fn unquoted_key(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> {
- take_while1(UNQUOTED_CHAR)
+ take_while(1.., UNQUOTED_CHAR)
.map(|b| unsafe { from_utf8_unchecked(b, "`is_unquoted_char` filters out on-ASCII") })
.parse_next(input)
}
diff --git a/vendor/toml_edit/src/parser/numbers.rs b/vendor/toml_edit/src/parser/numbers.rs
index 903b5f54a..803cc9d57 100644
--- a/vendor/toml_edit/src/parser/numbers.rs
+++ b/vendor/toml_edit/src/parser/numbers.rs
@@ -1,15 +1,15 @@
use std::ops::RangeInclusive;
-use winnow::branch::alt;
-use winnow::bytes::one_of;
-use winnow::bytes::tag;
-use winnow::bytes::take;
+use winnow::combinator::alt;
use winnow::combinator::cut_err;
use winnow::combinator::opt;
use winnow::combinator::peek;
+use winnow::combinator::preceded;
+use winnow::combinator::repeat;
use winnow::combinator::rest;
-use winnow::multi::many0;
-use winnow::sequence::preceded;
+use winnow::token::one_of;
+use winnow::token::tag;
+use winnow::token::take;
use crate::parser::prelude::*;
use crate::parser::trivia::from_utf8_unchecked;
@@ -39,11 +39,11 @@ const FALSE: &[u8] = b"false";
// integer = dec-int / hex-int / oct-int / bin-int
pub(crate) fn integer(input: Input<'_>) -> IResult<Input<'_>, i64, ParserError<'_>> {
dispatch! {peek(opt::<_, &[u8], _, _>(take(2usize)));
- Some(b"0x") => cut_err(hex_int.map_res(|s| i64::from_str_radix(&s.replace('_', ""), 16))),
- Some(b"0o") => cut_err(oct_int.map_res(|s| i64::from_str_radix(&s.replace('_', ""), 8))),
- Some(b"0b") => cut_err(bin_int.map_res(|s| i64::from_str_radix(&s.replace('_', ""), 2))),
+ Some(b"0x") => cut_err(hex_int.try_map(|s| i64::from_str_radix(&s.replace('_', ""), 16))),
+ Some(b"0o") => cut_err(oct_int.try_map(|s| i64::from_str_radix(&s.replace('_', ""), 8))),
+ Some(b"0b") => cut_err(bin_int.try_map(|s| i64::from_str_radix(&s.replace('_', ""), 2))),
_ => dec_int.and_then(cut_err(rest
- .map_res(|s: &str| s.replace('_', "").parse())))
+ .try_map(|s: &str| s.replace('_', "").parse())))
}
.parse_next(input)
}
@@ -56,15 +56,18 @@ pub(crate) fn dec_int(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<
alt((
(
one_of(DIGIT1_9),
- many0(alt((
- digit.value(()),
- (
- one_of(b'_'),
- cut_err(digit)
- .context(Context::Expected(ParserValue::Description("digit"))),
- )
- .value(()),
- )))
+ repeat(
+ 0..,
+ alt((
+ digit.value(()),
+ (
+ one_of(b'_'),
+ cut_err(digit)
+ .context(Context::Expected(ParserValue::Description("digit"))),
+ )
+ .value(()),
+ )),
+ )
.map(|()| ()),
)
.value(()),
@@ -85,14 +88,18 @@ pub(crate) fn hex_int(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<
HEX_PREFIX,
cut_err((
hexdig,
- many0(alt((
- hexdig.value(()),
- (
- one_of(b'_'),
- cut_err(hexdig).context(Context::Expected(ParserValue::Description("digit"))),
- )
- .value(()),
- )))
+ repeat(
+ 0..,
+ alt((
+ hexdig.value(()),
+ (
+ one_of(b'_'),
+ cut_err(hexdig)
+ .context(Context::Expected(ParserValue::Description("digit"))),
+ )
+ .value(()),
+ )),
+ )
.map(|()| ()),
))
.recognize(),
@@ -110,15 +117,18 @@ pub(crate) fn oct_int(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<
OCT_PREFIX,
cut_err((
one_of(DIGIT0_7),
- many0(alt((
- one_of(DIGIT0_7).value(()),
- (
- one_of(b'_'),
- cut_err(one_of(DIGIT0_7))
- .context(Context::Expected(ParserValue::Description("digit"))),
- )
- .value(()),
- )))
+ repeat(
+ 0..,
+ alt((
+ one_of(DIGIT0_7).value(()),
+ (
+ one_of(b'_'),
+ cut_err(one_of(DIGIT0_7))
+ .context(Context::Expected(ParserValue::Description("digit"))),
+ )
+ .value(()),
+ )),
+ )
.map(|()| ()),
))
.recognize(),
@@ -137,15 +147,18 @@ pub(crate) fn bin_int(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<
BIN_PREFIX,
cut_err((
one_of(DIGIT0_1),
- many0(alt((
- one_of(DIGIT0_1).value(()),
- (
- one_of(b'_'),
- cut_err(one_of(DIGIT0_1))
- .context(Context::Expected(ParserValue::Description("digit"))),
- )
- .value(()),
- )))
+ repeat(
+ 0..,
+ alt((
+ one_of(DIGIT0_1).value(()),
+ (
+ one_of(b'_'),
+ cut_err(one_of(DIGIT0_1))
+ .context(Context::Expected(ParserValue::Description("digit"))),
+ )
+ .value(()),
+ )),
+ )
.map(|()| ()),
))
.recognize(),
@@ -165,7 +178,7 @@ const DIGIT0_1: RangeInclusive<u8> = b'0'..=b'1';
pub(crate) fn float(input: Input<'_>) -> IResult<Input<'_>, f64, ParserError<'_>> {
alt((
float_.and_then(cut_err(
- rest.map_res(|s: &str| s.replace('_', "").parse())
+ rest.try_map(|s: &str| s.replace('_', "").parse())
.verify(|f: &f64| *f != f64::INFINITY),
)),
special_float,
@@ -207,14 +220,17 @@ pub(crate) fn frac(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>
pub(crate) fn zero_prefixable_int(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> {
(
digit,
- many0(alt((
- digit.value(()),
- (
- one_of(b'_'),
- cut_err(digit).context(Context::Expected(ParserValue::Description("digit"))),
- )
- .value(()),
- )))
+ repeat(
+ 0..,
+ alt((
+ digit.value(()),
+ (
+ one_of(b'_'),
+ cut_err(digit).context(Context::Expected(ParserValue::Description("digit"))),
+ )
+ .value(()),
+ )),
+ )
.map(|()| ()),
)
.recognize()
diff --git a/vendor/toml_edit/src/parser/strings.rs b/vendor/toml_edit/src/parser/strings.rs
index 93d034c00..2ce160506 100644
--- a/vendor/toml_edit/src/parser/strings.rs
+++ b/vendor/toml_edit/src/parser/strings.rs
@@ -2,25 +2,22 @@ use std::borrow::Cow;
use std::char;
use std::ops::RangeInclusive;
-use winnow::branch::alt;
-use winnow::bytes::any;
-use winnow::bytes::none_of;
-use winnow::bytes::one_of;
-use winnow::bytes::tag;
-use winnow::bytes::take_while0;
-use winnow::bytes::take_while1;
-use winnow::bytes::take_while_m_n;
+use winnow::combinator::alt;
use winnow::combinator::cut_err;
+use winnow::combinator::delimited;
use winnow::combinator::fail;
use winnow::combinator::opt;
use winnow::combinator::peek;
+use winnow::combinator::preceded;
+use winnow::combinator::repeat;
use winnow::combinator::success;
-use winnow::multi::many0;
-use winnow::multi::many1;
+use winnow::combinator::terminated;
use winnow::prelude::*;
-use winnow::sequence::delimited;
-use winnow::sequence::preceded;
-use winnow::sequence::terminated;
+use winnow::token::any;
+use winnow::token::none_of;
+use winnow::token::one_of;
+use winnow::token::tag;
+use winnow::token::take_while;
use crate::parser::errors::CustomError;
use crate::parser::numbers::HEXDIG;
@@ -71,8 +68,8 @@ fn basic_chars(input: Input<'_>) -> IResult<Input<'_>, Cow<'_, str>, ParserError
alt((
// Deviate from the official grammar by batching the unescaped chars so we build a string a
// chunk at a time, rather than a `char` at a time.
- take_while1(BASIC_UNESCAPED)
- .map_res(std::str::from_utf8)
+ take_while(1.., BASIC_UNESCAPED)
+ .try_map(std::str::from_utf8)
.map(Cow::Borrowed),
escaped.map(|c| Cow::Owned(String::from(c))),
))
@@ -136,11 +133,11 @@ fn escape_seq_char(input: Input<'_>) -> IResult<Input<'_>, char, ParserError<'_>
pub(crate) fn hexescape<const N: usize>(
input: Input<'_>,
) -> IResult<Input<'_>, char, ParserError<'_>> {
- take_while_m_n(0, N, HEXDIG)
+ take_while(0..=N, HEXDIG)
.verify(|b: &[u8]| b.len() == N)
.map(|b: &[u8]| unsafe { from_utf8_unchecked(b, "`is_ascii_digit` filters out on-ASCII") })
.verify_map(|s| u32::from_str_radix(s, 16).ok())
- .map_res(|h| char::from_u32(h).ok_or(CustomError::OutOfRange))
+ .try_map(|h| char::from_u32(h).ok_or(CustomError::OutOfRange))
.parse_next(input)
}
@@ -203,8 +200,8 @@ fn mlb_content(input: Input<'_>) -> IResult<Input<'_>, Cow<'_, str>, ParserError
alt((
// Deviate from the official grammar by batching the unescaped chars so we build a string a
// chunk at a time, rather than a `char` at a time.
- take_while1(MLB_UNESCAPED)
- .map_res(std::str::from_utf8)
+ take_while(1.., MLB_UNESCAPED)
+ .try_map(std::str::from_utf8)
.map(Cow::Borrowed),
// Order changed fromg grammar so `escaped` can more easily `cut_err` on bad escape sequences
mlb_escaped_nl.map(|_| Cow::Borrowed("")),
@@ -247,7 +244,7 @@ pub(crate) const MLB_UNESCAPED: (
// (including newlines) up to the next non-whitespace
// character or closing delimiter.
fn mlb_escaped_nl(input: Input<'_>) -> IResult<Input<'_>, (), ParserError<'_>> {
- many1((ESCAPE, ws, ws_newlines))
+ repeat(1.., (ESCAPE, ws, ws_newlines))
.map(|()| ())
.value(())
.parse_next(input)
@@ -259,10 +256,10 @@ fn mlb_escaped_nl(input: Input<'_>) -> IResult<Input<'_>, (), ParserError<'_>> {
pub(crate) fn literal_string(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> {
delimited(
APOSTROPHE,
- cut_err(take_while0(LITERAL_CHAR)),
+ cut_err(take_while(0.., LITERAL_CHAR)),
cut_err(APOSTROPHE),
)
- .map_res(std::str::from_utf8)
+ .try_map(std::str::from_utf8)
.context(Context::Expression("literal string"))
.parse_next(input)
}
@@ -304,16 +301,19 @@ pub(crate) const ML_LITERAL_STRING_DELIM: &[u8] = b"'''";
// ml-literal-body = *mll-content *( mll-quotes 1*mll-content ) [ mll-quotes ]
fn ml_literal_body(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> {
(
- many0(mll_content).map(|()| ()),
- many0((
- mll_quotes(none_of(APOSTROPHE).value(())),
- many1(mll_content).map(|()| ()),
- ))
+ repeat(0.., mll_content).map(|()| ()),
+ repeat(
+ 0..,
+ (
+ mll_quotes(none_of(APOSTROPHE).value(())),
+ repeat(1.., mll_content).map(|()| ()),
+ ),
+ )
.map(|()| ()),
opt(mll_quotes(tag(ML_LITERAL_STRING_DELIM).value(()))),
)
.recognize()
- .map_res(std::str::from_utf8)
+ .try_map(std::str::from_utf8)
.parse_next(input)
}
diff --git a/vendor/toml_edit/src/parser/table.rs b/vendor/toml_edit/src/parser/table.rs
index a6085e475..9d2675868 100644
--- a/vendor/toml_edit/src/parser/table.rs
+++ b/vendor/toml_edit/src/parser/table.rs
@@ -2,10 +2,10 @@ use std::cell::RefCell;
#[allow(unused_imports)]
use std::ops::DerefMut;
-use winnow::bytes::take;
use winnow::combinator::cut_err;
+use winnow::combinator::delimited;
use winnow::combinator::peek;
-use winnow::sequence::delimited;
+use winnow::token::take;
// https://github.com/rust-lang/rust/issues/41358
use crate::parser::key::key;
@@ -42,7 +42,7 @@ pub(crate) fn std_table<'s, 'i>(
.context(Context::Expected(ParserValue::CharLiteral('\n')))
.context(Context::Expected(ParserValue::CharLiteral('#'))),
)
- .map_res(|((h, span), t)| state.borrow_mut().deref_mut().on_std_header(h, t, span))
+ .try_map(|((h, span), t)| state.borrow_mut().deref_mut().on_std_header(h, t, span))
.parse_next(i)
}
}
@@ -67,7 +67,7 @@ pub(crate) fn array_table<'s, 'i>(
.context(Context::Expected(ParserValue::CharLiteral('\n')))
.context(Context::Expected(ParserValue::CharLiteral('#'))),
)
- .map_res(|((h, span), t)| state.borrow_mut().deref_mut().on_array_header(h, t, span))
+ .try_map(|((h, span), t)| state.borrow_mut().deref_mut().on_array_header(h, t, span))
.parse_next(i)
}
}
diff --git a/vendor/toml_edit/src/parser/trivia.rs b/vendor/toml_edit/src/parser/trivia.rs
index 97ff49c73..ba47dcde6 100644
--- a/vendor/toml_edit/src/parser/trivia.rs
+++ b/vendor/toml_edit/src/parser/trivia.rs
@@ -1,15 +1,13 @@
use std::ops::RangeInclusive;
-use winnow::branch::alt;
-use winnow::bytes::one_of;
-use winnow::bytes::take_while0;
-use winnow::bytes::take_while1;
+use winnow::combinator::alt;
use winnow::combinator::eof;
use winnow::combinator::opt;
-use winnow::multi::many0;
-use winnow::multi::many1;
+use winnow::combinator::repeat;
+use winnow::combinator::terminated;
use winnow::prelude::*;
-use winnow::sequence::terminated;
+use winnow::token::one_of;
+use winnow::token::take_while;
use crate::parser::prelude::*;
@@ -31,7 +29,7 @@ pub(crate) const WSCHAR: (u8, u8) = (b' ', b'\t');
// ws = *wschar
pub(crate) fn ws(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> {
- take_while0(WSCHAR)
+ take_while(0.., WSCHAR)
.map(|b| unsafe { from_utf8_unchecked(b, "`is_wschar` filters out on-ASCII") })
.parse_next(input)
}
@@ -51,7 +49,7 @@ pub(crate) const COMMENT_START_SYMBOL: u8 = b'#';
// comment = comment-start-symbol *non-eol
pub(crate) fn comment(input: Input<'_>) -> IResult<Input<'_>, &[u8], ParserError<'_>> {
- (COMMENT_START_SYMBOL, take_while0(NON_EOL))
+ (COMMENT_START_SYMBOL, take_while(0.., NON_EOL))
.recognize()
.parse_next(input)
}
@@ -70,13 +68,14 @@ pub(crate) const CR: u8 = b'\r';
// ws-newline = *( wschar / newline )
pub(crate) fn ws_newline(input: Input<'_>) -> IResult<Input<'_>, &str, ParserError<'_>> {
- many0(alt((newline.value(&b"\n"[..]), take_while1(WSCHAR))))
- .map(|()| ())
- .recognize()
- .map(|b| unsafe {
- from_utf8_unchecked(b, "`is_wschar` and `newline` filters out on-ASCII")
- })
- .parse_next(input)
+ repeat(
+ 0..,
+ alt((newline.value(&b"\n"[..]), take_while(1.., WSCHAR))),
+ )
+ .map(|()| ())
+ .recognize()
+ .map(|b| unsafe { from_utf8_unchecked(b, "`is_wschar` and `newline` filters out on-ASCII") })
+ .parse_next(input)
}
// ws-newlines = newline *( wschar / newline )
@@ -92,10 +91,17 @@ pub(crate) fn ws_newlines(input: Input<'_>) -> IResult<Input<'_>, &str, ParserEr
// note: this rule is not present in the original grammar
// ws-comment-newline = *( ws-newline-nonempty / comment )
pub(crate) fn ws_comment_newline(input: Input<'_>) -> IResult<Input<'_>, &[u8], ParserError<'_>> {
- many0(alt((
- many1(alt((take_while1(WSCHAR), newline.value(&b"\n"[..])))).map(|()| ()),
- comment.value(()),
- )))
+ repeat(
+ 0..,
+ alt((
+ repeat(
+ 1..,
+ alt((take_while(1.., WSCHAR), newline.value(&b"\n"[..]))),
+ )
+ .map(|()| ()),
+ comment.value(()),
+ )),
+ )
.map(|()| ())
.recognize()
.parse_next(input)
diff --git a/vendor/toml_edit/src/parser/value.rs b/vendor/toml_edit/src/parser/value.rs
index 63a821114..19950585b 100644
--- a/vendor/toml_edit/src/parser/value.rs
+++ b/vendor/toml_edit/src/parser/value.rs
@@ -84,7 +84,7 @@ pub(crate) fn value(
},
}
.with_span()
- .map_res(|(value, span)| apply_raw(value, span))
+ .try_map(|(value, span)| apply_raw(value, span))
.parse_next(input)
}
}
diff --git a/vendor/toml_edit/src/ser/value.rs b/vendor/toml_edit/src/ser/value.rs
index cc7dfb773..d29390a4c 100644
--- a/vendor/toml_edit/src/ser/value.rs
+++ b/vendor/toml_edit/src/ser/value.rs
@@ -167,15 +167,18 @@ impl serde::ser::Serializer for ValueSerializer {
fn serialize_newtype_variant<T: ?Sized>(
self,
- name: &'static str,
+ _name: &'static str,
_variant_index: u32,
- _variant: &'static str,
- _value: &T,
+ variant: &'static str,
+ value: &T,
) -> Result<Self::Ok, Self::Error>
where
T: serde::ser::Serialize,
{
- Err(Error::UnsupportedType(Some(name)))
+ let value = value.serialize(self)?;
+ let mut table = crate::InlineTable::new();
+ table.insert(variant, value);
+ Ok(table.into())
}
fn serialize_seq(self, len: Option<usize>) -> Result<Self::SerializeSeq, Self::Error> {
diff --git a/vendor/toml_edit/src/table.rs b/vendor/toml_edit/src/table.rs
index f177028fa..2f61abf73 100644
--- a/vendor/toml_edit/src/table.rs
+++ b/vendor/toml_edit/src/table.rs
@@ -265,7 +265,7 @@ impl Table {
self.items.iter().filter(|i| !(i.1).value.is_none()).count()
}
- /// Returns true iff the table is empty.
+ /// Returns true if the table is empty.
pub fn is_empty(&self) -> bool {
self.len() == 0
}
@@ -340,7 +340,7 @@ impl Table {
})
}
- /// Returns true iff the table contains an item with the given key.
+ /// Returns true if the table contains an item with the given key.
pub fn contains_key(&self, key: &str) -> bool {
if let Some(kv) = self.items.get(key) {
!kv.value.is_none()
@@ -349,7 +349,7 @@ impl Table {
}
}
- /// Returns true iff the table contains a table with the given key.
+ /// Returns true if the table contains a table with the given key.
pub fn contains_table(&self, key: &str) -> bool {
if let Some(kv) = self.items.get(key) {
kv.value.is_table()
@@ -358,7 +358,7 @@ impl Table {
}
}
- /// Returns true iff the table contains a value with the given key.
+ /// Returns true if the table contains a value with the given key.
pub fn contains_value(&self, key: &str) -> bool {
if let Some(kv) = self.items.get(key) {
kv.value.is_value()
@@ -367,7 +367,7 @@ impl Table {
}
}
- /// Returns true iff the table contains an array of tables with the given key.
+ /// Returns true if the table contains an array of tables with the given key.
pub fn contains_array_of_tables(&self, key: &str) -> bool {
if let Some(kv) = self.items.get(key) {
kv.value.is_array_of_tables()
@@ -502,7 +502,7 @@ pub trait TableLike: crate::private::Sealed {
fn len(&self) -> usize {
self.iter().filter(|&(_, v)| !v.is_none()).count()
}
- /// Returns true iff the table is empty.
+ /// Returns true if the table is empty.
fn is_empty(&self) -> bool {
self.len() == 0
}
@@ -520,7 +520,7 @@ pub trait TableLike: crate::private::Sealed {
fn get_key_value<'a>(&'a self, key: &str) -> Option<(&'a Key, &'a Item)>;
/// Return mutable references to the key-value pair stored for key, if it is present, else None.
fn get_key_value_mut<'a>(&'a mut self, key: &str) -> Option<(KeyMut<'a>, &'a mut Item)>;
- /// Returns true iff the table contains an item with the given key.
+ /// Returns true if the table contains an item with the given key.
fn contains_key(&self, key: &str) -> bool;
/// Inserts a key-value pair into the map.
fn insert(&mut self, key: &str, value: Item) -> Option<Item>;