Remove get and rename get_ref to get
Since `get_ref` (now `get`) takes `&self` there is no need for a special cloning method.
This commit is contained in:
@@ -111,7 +111,7 @@ impl Request<Fresh> {
|
||||
let mut chunked = true;
|
||||
let mut len = 0;
|
||||
|
||||
match self.headers.get_ref::<common::ContentLength>() {
|
||||
match self.headers.get::<common::ContentLength>() {
|
||||
Some(cl) => {
|
||||
chunked = false;
|
||||
len = cl.len();
|
||||
@@ -122,7 +122,7 @@ impl Request<Fresh> {
|
||||
// cant do in match above, thanks borrowck
|
||||
if chunked {
|
||||
//TODO: use CollectionViews (when implemented) to prevent double hash/lookup
|
||||
let encodings = match self.headers.get::<common::TransferEncoding>() {
|
||||
let encodings = match self.headers.get::<common::TransferEncoding>().map(|h| h.clone()) {
|
||||
Some(common::TransferEncoding(mut encodings)) => {
|
||||
//TODO: check if chunked is already in encodings. use HashSet?
|
||||
encodings.push(common::transfer_encoding::Chunked);
|
||||
|
||||
@@ -33,7 +33,7 @@ impl Response {
|
||||
debug!("{}", headers);
|
||||
|
||||
let body = if headers.has::<TransferEncoding>() {
|
||||
match headers.get_ref::<TransferEncoding>() {
|
||||
match headers.get::<TransferEncoding>() {
|
||||
Some(&TransferEncoding(ref codings)) => {
|
||||
if codings.len() > 1 {
|
||||
debug!("TODO: #2 handle other codings: {}", codings);
|
||||
@@ -49,7 +49,7 @@ impl Response {
|
||||
None => unreachable!()
|
||||
}
|
||||
} else if headers.has::<ContentLength>() {
|
||||
match headers.get_ref::<ContentLength>() {
|
||||
match headers.get::<ContentLength>() {
|
||||
Some(&ContentLength(len)) => SizedReader(stream, len),
|
||||
None => unreachable!()
|
||||
}
|
||||
|
||||
@@ -118,20 +118,6 @@ impl Headers {
|
||||
self.data.insert(CaseInsensitive(Slice(header_name::<H>())), RWLock::new(Typed(box value as Box<Header + Send + Sync>)));
|
||||
}
|
||||
|
||||
/// Get a clone of the header field's value, if it exists.
|
||||
///
|
||||
/// Example:
|
||||
///
|
||||
/// ```
|
||||
/// # use hyper::header::Headers;
|
||||
/// # use hyper::header::common::ContentType;
|
||||
/// # let mut headers = Headers::new();
|
||||
/// let content_type = headers.get::<ContentType>();
|
||||
/// ```
|
||||
pub fn get<H: Header + Clone>(&self) -> Option<H> {
|
||||
self.get_ref().map(|v: &H| v.clone())
|
||||
}
|
||||
|
||||
/// Access the raw value of a header, if it exists and has not
|
||||
/// been already parsed.
|
||||
///
|
||||
@@ -158,7 +144,7 @@ impl Headers {
|
||||
}
|
||||
|
||||
/// Get a reference to the header field's value, if it exists.
|
||||
pub fn get_ref<H: Header>(&self) -> Option<&H> {
|
||||
pub fn get<H: Header>(&self) -> Option<&H> {
|
||||
self.data.find(&CaseInsensitive(Slice(header_name::<H>()))).and_then(|item| {
|
||||
let done = match *item.read() {
|
||||
// Huge borrowck hack here, should be refactored to just return here.
|
||||
|
||||
@@ -46,7 +46,7 @@ impl Request {
|
||||
|
||||
|
||||
let body = if headers.has::<ContentLength>() {
|
||||
match headers.get_ref::<ContentLength>() {
|
||||
match headers.get::<ContentLength>() {
|
||||
Some(&ContentLength(len)) => SizedReader(stream, len),
|
||||
None => unreachable!()
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ impl Response<Fresh> {
|
||||
let mut chunked = true;
|
||||
let mut len = 0;
|
||||
|
||||
match self.headers.get_ref::<common::ContentLength>() {
|
||||
match self.headers.get::<common::ContentLength>() {
|
||||
Some(cl) => {
|
||||
chunked = false;
|
||||
len = cl.len();
|
||||
@@ -83,7 +83,7 @@ impl Response<Fresh> {
|
||||
// cant do in match above, thanks borrowck
|
||||
if chunked {
|
||||
//TODO: use CollectionViews (when implemented) to prevent double hash/lookup
|
||||
let encodings = match self.headers.get::<common::TransferEncoding>() {
|
||||
let encodings = match self.headers.get::<common::TransferEncoding>().map(|h| h.clone()) {
|
||||
Some(common::TransferEncoding(mut encodings)) => {
|
||||
//TODO: check if chunked is already in encodings. use HashSet?
|
||||
encodings.push(common::transfer_encoding::Chunked);
|
||||
|
||||
Reference in New Issue
Block a user