diff --git a/src/header/common/connection.rs b/src/header/common/connection.rs index f04b5bef..63af0541 100644 --- a/src/header/common/connection.rs +++ b/src/header/common/connection.rs @@ -1,6 +1,6 @@ use header::Header; use std::fmt::{mod, Show}; -use super::from_one_raw_str; +use super::util::from_one_raw_str; use std::from_str::FromStr; /// The `Connection` header. diff --git a/src/header/common/content_length.rs b/src/header/common/content_length.rs index 36b8a030..f0a072fe 100644 --- a/src/header/common/content_length.rs +++ b/src/header/common/content_length.rs @@ -1,7 +1,7 @@ use std::fmt::{mod, Show}; use header::Header; -use super::from_one_raw_str; +use super::util::from_one_raw_str; /// The `Content-Length` header. /// diff --git a/src/header/common/content_type.rs b/src/header/common/content_type.rs index 24c364a7..5562a0b7 100644 --- a/src/header/common/content_type.rs +++ b/src/header/common/content_type.rs @@ -1,6 +1,6 @@ use header::Header; use std::fmt::{mod, Show}; -use super::from_one_raw_str; +use super::util::from_one_raw_str; use mime::Mime; /// The `Content-Type` header. diff --git a/src/header/common/date.rs b/src/header/common/date.rs index 1aa6e4ef..4e8ad878 100644 --- a/src/header/common/date.rs +++ b/src/header/common/date.rs @@ -1,6 +1,6 @@ use header::Header; use std::fmt::{mod, Show}; -use super::from_one_raw_str; +use super::util::from_one_raw_str; use std::from_str::FromStr; use time::{Tm, strptime}; diff --git a/src/header/common/host.rs b/src/header/common/host.rs index 03776d72..64a0d4e2 100644 --- a/src/header/common/host.rs +++ b/src/header/common/host.rs @@ -1,6 +1,6 @@ use header::Header; use std::fmt::{mod, Show}; -use super::from_one_raw_str; +use super::util::from_one_raw_str; /// The `Host` header. /// diff --git a/src/header/common/location.rs b/src/header/common/location.rs index 6f185a44..d6d48772 100644 --- a/src/header/common/location.rs +++ b/src/header/common/location.rs @@ -1,6 +1,6 @@ use header::Header; use std::fmt::{mod, Show}; -use super::from_one_raw_str; +use super::util::from_one_raw_str; /// The `Location` header. /// diff --git a/src/header/common/mod.rs b/src/header/common/mod.rs index 46dfd5db..ecb9a3fa 100644 --- a/src/header/common/mod.rs +++ b/src/header/common/mod.rs @@ -17,9 +17,6 @@ pub use self::server::Server; pub use self::date::Date; pub use self::location::Location; -use std::from_str::FromStr; -use std::str::from_utf8; - /// Exposes the Host header. pub mod host; @@ -50,14 +47,6 @@ pub mod date; /// Exposes the Location header. pub mod location; -fn from_one_raw_str(raw: &[Vec]) -> Option { - if raw.len() != 1 { - return None; - } - // we JUST checked that raw.len() == 1, so raw[0] WILL exist. - match from_utf8(unsafe { raw.as_slice().unsafe_get(0).as_slice() }) { - Some(s) => FromStr::from_str(s), - None => None - } -} +pub mod util; + diff --git a/src/header/common/server.rs b/src/header/common/server.rs index b9404e24..e0084d69 100644 --- a/src/header/common/server.rs +++ b/src/header/common/server.rs @@ -1,6 +1,6 @@ use header::Header; use std::fmt::{mod, Show}; -use super::from_one_raw_str; +use super::util::from_one_raw_str; /// The `Server` header field. /// diff --git a/src/header/common/user_agent.rs b/src/header/common/user_agent.rs index 40123bec..c46d2920 100644 --- a/src/header/common/user_agent.rs +++ b/src/header/common/user_agent.rs @@ -1,6 +1,6 @@ use header::Header; use std::fmt::{mod, Show}; -use super::from_one_raw_str; +use super::util::from_one_raw_str; /// The `User-Agent` header field. /// diff --git a/src/header/common/util.rs b/src/header/common/util.rs new file mode 100644 index 00000000..943578fa --- /dev/null +++ b/src/header/common/util.rs @@ -0,0 +1,16 @@ +//! Utility functions for Header implementations. + +use std::from_str::FromStr; +use std::str::from_utf8; + +/// Utility function that reads a single raw string when parsing a header +pub fn from_one_raw_str(raw: &[Vec]) -> Option { + if raw.len() != 1 { + return None; + } + // we JUST checked that raw.len() == 1, so raw[0] WILL exist. + match from_utf8(unsafe { raw.as_slice().unsafe_get(0).as_slice() }) { + Some(s) => FromStr::from_str(s), + None => None + } +}