refactor(header): replace url crate with percent-encoding

This commit is contained in:
Sean McArthur
2017-06-13 10:55:12 -07:00
parent d09288e7b3
commit cee8692d81
3 changed files with 9 additions and 14 deletions

View File

@@ -27,13 +27,13 @@ httparse = "1.0"
language-tags = "0.2" language-tags = "0.2"
log = "0.3" log = "0.3"
mime = "0.3.2" mime = "0.3.2"
percent-encoding = "1.0"
time = "0.1" time = "0.1"
tokio-core = "0.1.6" tokio-core = "0.1.6"
tokio-proto = "0.1" tokio-proto = "0.1"
tokio-service = "0.1" tokio-service = "0.1"
tokio-io = "0.1" tokio-io = "0.1"
unicase = "2.0" unicase = "2.0"
url = "1.0"
[dev-dependencies] [dev-dependencies]
num_cpus = "1.0" num_cpus = "1.0"

View File

@@ -4,7 +4,7 @@ use language_tags::LanguageTag;
use std::str; use std::str;
use std::str::FromStr; use std::str::FromStr;
use std::fmt::{self, Display}; use std::fmt::{self, Display};
use url::percent_encoding; use percent_encoding;
use header::Raw; use header::Raw;
use header::shared::Charset; use header::shared::Charset;
@@ -156,23 +156,18 @@ pub fn http_percent_encode(f: &mut fmt::Formatter, bytes: &[u8]) -> fmt::Result
} }
mod percent_encoding_http { mod percent_encoding_http {
use std::fmt; use percent_encoding;
use url::percent_encoding;
// internal module because macro is hard-coded to make a public item
// but we don't want to public export this item
define_encode_set! { define_encode_set! {
/// This encode set is used for HTTP header values and is defined at // This encode set is used for HTTP header values and is defined at
/// https://tools.ietf.org/html/rfc5987#section-3.2 // https://tools.ietf.org/html/rfc5987#section-3.2
pub HTTP_VALUE = [percent_encoding::SIMPLE_ENCODE_SET] | { pub HTTP_VALUE = [percent_encoding::SIMPLE_ENCODE_SET] | {
' ', '"', '%', '\'', '(', ')', '*', ',', '/', ':', ';', '<', '-', '>', '?', ' ', '"', '%', '\'', '(', ')', '*', ',', '/', ':', ';', '<', '-', '>', '?',
'[', '\\', ']', '{', '}' '[', '\\', ']', '{', '}'
} }
} }
impl fmt::Debug for HTTP_VALUE {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.pad("HTTP_VALUE")
}
}
} }
#[cfg(test)] #[cfg(test)]

View File

@@ -17,6 +17,7 @@
//! If just starting out, **check out the [Guides](https://hyper.rs/guides) //! If just starting out, **check out the [Guides](https://hyper.rs/guides)
//! first.** //! first.**
extern crate base64;
extern crate bytes; extern crate bytes;
#[macro_use] extern crate futures; #[macro_use] extern crate futures;
extern crate futures_cpupool; extern crate futures_cpupool;
@@ -24,14 +25,13 @@ extern crate httparse;
extern crate language_tags; extern crate language_tags;
#[macro_use] extern crate log; #[macro_use] extern crate log;
pub extern crate mime; pub extern crate mime;
extern crate base64; #[macro_use] extern crate percent_encoding;
extern crate time; extern crate time;
extern crate tokio_core as tokio; extern crate tokio_core as tokio;
#[macro_use] extern crate tokio_io; #[macro_use] extern crate tokio_io;
extern crate tokio_proto; extern crate tokio_proto;
extern crate tokio_service; extern crate tokio_service;
extern crate unicase; extern crate unicase;
#[macro_use] extern crate url;
#[cfg(all(test, feature = "nightly"))] #[cfg(all(test, feature = "nightly"))]
extern crate test; extern crate test;