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/*!
13
14# the trillium cookie handler
15
16## example
17```
18use trillium::Conn;
19use trillium_cookies::{cookie::Cookie, CookiesConnExt, CookiesHandler};
20async fn handler_that_uses_cookies(conn: Conn) -> Conn {
21    let content = if let Some(cookie_value) = conn.cookies().get("some_cookie") {
22        format!("current cookie value: {}", cookie_value.value())
23    } else {
24        String::from("no cookie value set")
25    };
26
27    conn.with_cookie(("some_cookie", "some-cookie-value")).ok(content)
28}
29
30let handler = (CookiesHandler::new(), handler_that_uses_cookies);
31
32use trillium_testing::prelude::*;
33
34assert_ok!(
35    get("/").on(&handler),
36    "no cookie value set",
37    "set-cookie" => "some_cookie=some-cookie-value"
38);
39
40assert_ok!(
41    get("/").with_request_header("cookie", "some_cookie=trillium").on(&handler),
42    "current cookie value: trillium",
43    "set-cookie" => "some_cookie=some-cookie-value"
44);
45
46```
47*/
48mod cookies_handler;
49pub use cookies_handler::{cookies, CookiesHandler};
50
51mod cookies_conn_ext;
52pub use cookies_conn_ext::CookiesConnExt;
53
54pub use cookie;