aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Fischer <martin@push-f.com>2021-01-29 11:38:33 +0100
committerMartin Fischer <martin@push-f.com>2021-01-29 11:38:57 +0100
commit10b5cd07f07cefd15450001375cd1c3e6927cc8a (patch)
tree8bd05662b4eacb54f6537c18788a33f861714fc3
parent6c44846f6bf5901eaa12b943646632bd2163c898 (diff)
add documentation
-rw-r--r--src/request.rs4
-rw-r--r--src/response.rs6
-rw-r--r--src/security.rs2
3 files changed, 9 insertions, 3 deletions
diff --git a/src/request.rs b/src/request.rs
index 195e601..d89248c 100644
--- a/src/request.rs
+++ b/src/request.rs
@@ -13,6 +13,7 @@ use crate::response::{SputnikHeaders, delete_cookie};
const CSRF_COOKIE_NAME : &str = "csrf";
+/// Adds convenience methods to [`http::request::Parts`](Parts).
pub trait SputnikParts {
/// Parses the query string of the request into a given struct.
fn query<X: DeserializeOwned>(&self) -> Result<X,QueryError>;
@@ -32,7 +33,7 @@ pub trait SputnikParts {
fn response_headers(&mut self) -> &mut HeaderMap;
}
-impl SputnikParts for hyper::http::request::Parts {
+impl SputnikParts for Parts {
fn query<T: DeserializeOwned>(&self) -> Result<T,QueryError> {
serde_urlencoded::from_str::<T>(self.uri.query().unwrap_or("")).map_err(QueryError)
}
@@ -185,6 +186,7 @@ impl CsrfToken {
}
}
+/// Adds deserialization methods to [`hyper::Body`].
#[async_trait]
pub trait SputnikBody {
async fn into_bytes(self) -> Result<Bytes, BodyError>;
diff --git a/src/response.rs b/src/response.rs
index c8ff23a..2d5d469 100644
--- a/src/response.rs
+++ b/src/response.rs
@@ -1,4 +1,4 @@
-//! Provides the [`SputnikBuilder`] trait.
+//! Provides convenience traits and functions to build HTTP responses.
use std::convert::TryInto;
@@ -7,6 +7,7 @@ use hyper::{HeaderMap, StatusCode, header, http};
use time::{Duration, OffsetDateTime};
use hyper::http::response::Builder;
+/// Adds convenience methods to [`Builder`].
pub trait SputnikBuilder {
/// Sets the Content-Type.
fn content_type(self, mime: mime::Mime) -> Builder;
@@ -15,6 +16,7 @@ pub trait SputnikBuilder {
fn set_cookie(self, cookie: Cookie) -> Builder;
}
+/// Creates a new builder with a given Location header and status code.
pub fn redirect(location: &str, code: StatusCode) -> Builder {
Builder::new().status(code).header(header::LOCATION, location)
}
@@ -39,6 +41,7 @@ pub fn delete_cookie(name: &str) -> Cookie {
cookie
}
+/// Adds convenience methods to [`HeaderMap`].
pub trait SputnikHeaders {
/// Sets the Content-Type.
fn content_type(&mut self, mime: mime::Mime);
@@ -57,6 +60,7 @@ impl SputnikHeaders for HeaderMap {
}
}
+/// Adds a convenience method to consume a [`Builder`] with an empty body.
pub trait EmptyBuilder<B> {
/// Consume the builder with an empty body.
fn empty(self) -> http::Result<http::response::Response<B>>;
diff --git a/src/security.rs b/src/security.rs
index 0ffa7a0..258d3dc 100644
--- a/src/security.rs
+++ b/src/security.rs
@@ -1,4 +1,4 @@
-//! [`Key`] and functions to encode & decode expiring claims.
+//! Provides [`Key`] and functions to encode & decode expiring claims.
use time::OffsetDateTime;