🏡 index : ~doyle/bin.git

author Jordan Johnson-Doyle <jordan@doyle.la> 2019-02-13 21:52:17.0 +00:00:00
committer Jordan Johnson-Doyle <jordan@doyle.la> 2019-02-13 21:52:17.0 +00:00:00
commit
707b5b16e7dda6161179bcffab4ed1d858b1630f [patch]
tree
e5d63d10bf3ac0eea80bef4f4f5da64132d6a47e
parent
4fde2681173c2f8ba1d255535661f76cd83d7f2c
download
707b5b16e7dda6161179bcffab4ed1d858b1630f.tar.gz

Use dereferencing for request parameters



Diff

 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
+++ b/src/main.rs
@@ -63,7 +63,7 @@ fn submit_raw(input: Data, host: HostHeader) -> std::io::Result<String> {

    let paste = store_paste(data);

    match host.0 {
    match *host {
        Some(host) => Ok(format!("https://{}/{}", host, paste)),
        None => Ok(paste)
    }
@@ -90,7 +90,7 @@ fn render(key: String, plaintext: IsPlaintextRequest) -> Option<Content<String>>
    // 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
+++ b/src/params.rs
@@ -1,3 +1,5 @@
use std::ops::Deref;

use rocket::Request;
use rocket::request::{FromRequest, Outcome};

@@ -7,6 +9,14 @@ use rocket::request::{FromRequest, Outcome};
/// 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 = ();

@@ -30,6 +40,14 @@ impl<'a, 'r> FromRequest<'a, 'r> for IsPlaintextRequest {
/// 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 = ();