fn quoted(input: &[u8]) -> IResult<&[u8], Cow<str>> {
    let parser = tuple((
        DQUOTE,
        map_res(
            escaped(
                take_while1(is_any_text_char_except_quoted_specials),
                '\\',
                one_of("\\\""),
            ),
            from_utf8, // FIXME(perf): use from_utf8_unchecked
        ),
        DQUOTE,
    ));

    let (remaining, (_, quoted, _)) = parser(input)?;

    Ok((remaining, unescape_quoted(quoted)))
}
/// quoted = DQUOTE *QUOTED-CHAR DQUOTE
///
/// This function only allocates a new String, when needed, i.e. when
/// quoted chars need to be replaced.
quoted = DQUOTE *QUOTED-CHAR DQUOTE
This function only allocates a new String, when needed, i.e. when
quoted chars need to be replaced.
quoted = DQUOTE * QUOTED - CHAR DQUOTE This function only allocates a new String when needed i . e . when quoted chars need to be replaced .
fn quoted(input: &[u8]) -> IResult<&[u8], Cow<str>> {
    let parser = tuple((
        DQUOTE,
        map_res(
            escaped(
                take_while1(is_any_text_char_except_quoted_specials),
                '\\',
                one_of("\\\""),
            ),
            from_utf8, // FIXME(perf): use from_utf8_unchecked
        ),
        DQUOTE,
    ));
    let (remaining, (_, quoted, _)) = parser(input)?;
    Ok((remaining, unescape_quoted(quoted)))
}
fn quoted ( input : & [ u8 ] ) -> IResult < & [ u8 ] , Cow < str > > { let parser = tuple ( ( DQUOTE , map_res ( escaped ( take_while1 ( is_any_text_char_except_quoted_specials ) , '\\' , one_of ( " \\ \" " ) , ) , from_utf8 , // FIXME(perf): use from_utf8_unchecked ) , DQUOTE , ) ) ; let ( remaining , ( _ , quoted , _ ) ) = parser ( input ) ? ; Ok ( ( remaining , unescape_quoted ( quoted ) ) ) }
quoted = DQUOTE *QUOTED-CHAR DQUOTE
This function only allocates a new String, when needed, i.e.
quoted = DQUOTE * QUOTED - CHAR DQUOTE This function only allocates a new String when needed i . e .
input
&[u8]