From 707b5b16e7dda6161179bcffab4ed1d858b1630f Mon Sep 17 00:00:00 2001 From: Jordan Johnson-Doyle Date: Wed, 13 Feb 2019 21:52:17 +0000 Subject: [PATCH] Use dereferencing for request parameters --- src/main.rs | 4 ++-- src/params.rs | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 84361e5..c8e08f0 100644 --- a/src/main.rs +++ a/src/main.rs @@ -63,7 +63,7 @@ let paste = store_paste(data); - match host.0 { + match *host { Some(host) => Ok(format!("https://{}/{}", host, paste)), None => Ok(paste) } @@ -90,7 +90,7 @@ // again so we can hold this for as long as we want let entry = get_paste(key)?; - if plaintext.0 { + if *plaintext { Some(Content(ContentType::Plain, entry)) } else { Some(Content(ContentType::HTML, Render { diff --git a/src/params.rs b/src/params.rs index e8b7930..7e8902a 100644 --- a/src/params.rs +++ a/src/params.rs @@ -1,3 +1,5 @@ +use std::ops::Deref; + use rocket::Request; use rocket::request::{FromRequest, Outcome}; @@ -6,6 +8,14 @@ /// We assume anything with the text/plain Accept or Content-Type headers want plaintext, /// and also anything calling us from the console or that we can't identify. pub struct IsPlaintextRequest(pub bool); + +impl Deref for IsPlaintextRequest { + type Target = bool; + + fn deref(&self) -> &bool { + &self.0 + } +} impl<'a, 'r> FromRequest<'a, 'r> for IsPlaintextRequest { type Error = (); @@ -29,6 +39,14 @@ /// The inner value of this `HostHeader` will be `None` if there was no Host header /// on the request. pub struct HostHeader<'a>(pub Option<&'a str>); + +impl<'a> Deref for HostHeader<'a> { + type Target = Option<&'a str>; + + fn deref(&self) -> &Option<&'a str> { + &self.0 + } +} impl<'a, 'r> FromRequest<'a, 'r> for HostHeader<'a> { type Error = (); -- rgit 0.1.3