From dd567907e027200a4f18bc05d7c0f5acb9648d5a Mon Sep 17 00:00:00 2001 From: Marc-Antoine Perennou Date: Wed, 3 Jun 2020 09:46:13 +0200 Subject: update percent-encoding Signed-off-by: Marc-Antoine Perennou --- Cargo.toml | 2 +- src/ser.rs | 27 +++++++-------------------- 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 0759193..3b296e0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,7 @@ repository = "samscott89/serde_qs" actix-web = { version ="1.0.0", optional = true } data-encoding = "2.1.2" error-chain = "0.12.0" -percent-encoding = "1.0.1" +percent-encoding = "2.1.0" serde = "1.0.85" [dev-dependencies] diff --git a/src/ser.rs b/src/ser.rs index 1530edc..9086ad2 100644 --- a/src/ser.rs +++ b/src/ser.rs @@ -1,7 +1,7 @@ //! Serialization support for querystrings. use data_encoding::BASE64URL_NOPAD as BASE64; -use percent_encoding::{percent_encode, EncodeSet}; +use percent_encoding::{percent_encode, AsciiSet, NON_ALPHANUMERIC}; use serde::ser; use error::*; @@ -11,25 +11,12 @@ use std::fmt::Display; use std::io::Write; use std::str; -#[allow(non_camel_case_types)] -#[derive(Clone)] -struct QS_ENCODE_SET; - -impl EncodeSet for QS_ENCODE_SET { - fn contains(&self, byte: u8) -> bool { - match byte { - b' ' - | b'*' - | b'-' - | b'.' - | b'0'..=b'9' - | b'A'..=b'Z' - | b'_' - | b'a'..=b'z' => false, - _ => true, - } - } -} +const QS_ENCODE_SET: &AsciiSet = &NON_ALPHANUMERIC + .remove(b' ') + .remove(b'*') + .remove(b'-') + .remove(b'.') + .remove(b'_'); /// Serializes a value into a querystring. /// -- cgit v1.2.3