From 3e715f9a7bb9c08255c7883f304927742e1a5e31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Wed, 3 Nov 2021 14:49:20 +0100 Subject: [PATCH 1/3] implement as_str(), Display for Referer --- src/common/referer.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/common/referer.rs b/src/common/referer.rs index c85973b9..f1e565dd 100644 --- a/src/common/referer.rs +++ b/src/common/referer.rs @@ -46,6 +46,11 @@ impl Referer { pub fn from_static(s: &'static str) -> Referer { Referer(HeaderValue::from_static(s)) } + + /// View this `Referer` as a `&str`. + pub fn as_str(&self) -> &str { + self.0.as_str() + } } error_type!(InvalidReferer); @@ -58,3 +63,9 @@ impl FromStr for Referer { .map_err(|_| InvalidReferer { _inner: () }) } } + +impl fmt::Display for Referer { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + fmt::Display::fmt(&self.0, f) + } +} From 149c1f44ff580199226b63f21fea487a86629950 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Wed, 3 Nov 2021 21:06:47 +0100 Subject: [PATCH 2/3] fix import --- src/common/referer.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/common/referer.rs b/src/common/referer.rs index f1e565dd..bd3ee98a 100644 --- a/src/common/referer.rs +++ b/src/common/referer.rs @@ -1,3 +1,4 @@ +use std::fmt; use std::str::FromStr; use http::header::HeaderValue; From 721c6047a94dbbb1d3eb0da05dc52394eebe0a19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9e=20Kooi?= Date: Wed, 3 Nov 2021 21:07:57 +0100 Subject: [PATCH 3/3] actually correctly copy from UserAgent :innocent: --- src/common/referer.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/common/referer.rs b/src/common/referer.rs index bd3ee98a..4e8dd4e9 100644 --- a/src/common/referer.rs +++ b/src/common/referer.rs @@ -1,7 +1,7 @@ use std::fmt; use std::str::FromStr; -use http::header::HeaderValue; +use util::HeaderValueString; /// `Referer` header, defined in /// [RFC7231](http://tools.ietf.org/html/rfc7231#section-5.5.2) @@ -31,7 +31,7 @@ use http::header::HeaderValue; /// let r = Referer::from_static("/People.html#tim"); /// ``` #[derive(Debug, Clone, PartialEq)] -pub struct Referer(HeaderValue); +pub struct Referer(HeaderValueString); derive_header! { Referer(_), @@ -45,7 +45,7 @@ impl Referer { /// /// Panics if the string is not a legal header value. pub fn from_static(s: &'static str) -> Referer { - Referer(HeaderValue::from_static(s)) + Referer(HeaderValueString::from_static(s)) } /// View this `Referer` as a `&str`. @@ -59,7 +59,7 @@ error_type!(InvalidReferer); impl FromStr for Referer { type Err = InvalidReferer; fn from_str(src: &str) -> Result { - HeaderValue::from_str(src) + HeaderValueString::from_str(src) .map(Referer) .map_err(|_| InvalidReferer { _inner: () }) }