Skip to main content

trillium_cookies/
lib.rs

1#![forbid(unsafe_code)]
2#![deny(
3    clippy::dbg_macro,
4    missing_copy_implementations,
5    rustdoc::missing_crate_level_docs,
6    missing_debug_implementations,
7    missing_docs,
8    nonstandard_style,
9    unused_qualifications
10)]
11
12//! # the trillium cookie handler
13//!
14//! ## example
15//! ```
16//! use trillium::Conn;
17//! use trillium_cookies::{CookiesConnExt, CookiesHandler, cookie::Cookie};
18//! use trillium_testing::{TestServer, harness};
19//!
20//! # trillium_testing::block_on(async {
21//! async fn handler_that_uses_cookies(conn: Conn) -> Conn {
22//!     let content = if let Some(cookie_value) = conn.cookies().get("some_cookie") {
23//!         format!("current cookie value: {}", cookie_value.value())
24//!     } else {
25//!         String::from("no cookie value set")
26//!     };
27//!
28//!     conn.with_cookie(("some_cookie", "some-cookie-value"))
29//!         .ok(content)
30//! }
31//!
32//! let handler = (CookiesHandler::new(), handler_that_uses_cookies);
33//! let app = TestServer::new(handler).await;
34//!
35//! app.get("/")
36//!     .await
37//!     .assert_ok()
38//!     .assert_body("no cookie value set")
39//!     .assert_header("set-cookie", "some_cookie=some-cookie-value");
40//!
41//! app.get("/")
42//!     .with_request_header("cookie", "some_cookie=trillium")
43//!     .await
44//!     .assert_ok()
45//!     .assert_body("current cookie value: trillium")
46//!     .assert_header("set-cookie", "some_cookie=some-cookie-value");
47//! # });
48//! ```
49
50#[cfg(test)]
51#[doc = include_str!("../README.md")]
52mod readme {}
53
54mod cookies_handler;
55pub use cookies_handler::{CookiesHandler, cookies};
56
57mod cookies_conn_ext;
58pub use cookie;
59pub use cookies_conn_ext::CookiesConnExt;