|
1 | | -//! A cookie manager middleware built on top of [tower]. |
2 | | -//! |
3 | | -//! ## Example |
4 | | -//! |
5 | | -//! With [axum]: |
6 | | -//! |
7 | | -//! ```rust,no_run |
8 | | -//! use axum::{routing::get, Router}; |
9 | | -//! use std::net::SocketAddr; |
10 | | -//! use tower_cookies::{Cookie, CookieManagerLayer, Cookies}; |
11 | | -//! |
12 | | -//! # #[cfg(feature = "axum-core")] |
13 | | -//! #[tokio::main] |
14 | | -//! async fn main() { |
15 | | -//! let app = Router::new() |
16 | | -//! .route("/", get(handler)) |
17 | | -//! .layer(CookieManagerLayer::new()); |
18 | | -//! |
19 | | -//! let addr = SocketAddr::from(([127, 0, 0, 1], 3000)); |
20 | | -//! let listener = tokio::net::TcpListener::bind(&addr).await.unwrap(); |
21 | | -//! axum::serve(listener, app.into_make_service()) |
22 | | -//! .await |
23 | | -//! .unwrap(); |
24 | | -//! } |
25 | | -//! # #[cfg(not(feature = "axum-core"))] |
26 | | -//! # fn main() {} |
27 | | -//! |
28 | | -//! async fn handler(cookies: Cookies) -> &'static str { |
29 | | -//! cookies.add(Cookie::new("hello_world", "hello_world")); |
30 | | -//! |
31 | | -//! "Check your cookies." |
32 | | -//! } |
33 | | -//! ``` |
34 | | -//! |
35 | | -//! A complete CRUD cookie example in [examples/counter.rs][example] |
36 | | -//! |
37 | | -//! [axum]: https://crates.io/crates/axum |
38 | | -//! [tower]: https://crates.io/crates/tower |
39 | | -//! [example]: https://github.com/imbolc/tower-cookies/blob/main/examples/counter.rs |
40 | | -
|
| 1 | +#![cfg_attr(docsrs, feature(doc_auto_cfg))] |
| 2 | +#![doc = include_str!("../README.md")] |
41 | 3 | #![warn(clippy::all, missing_docs, nonstandard_style, future_incompatible)] |
42 | 4 | #![forbid(unsafe_code)] |
43 | 5 | #![cfg_attr(docsrs, feature(doc_cfg))] |
|
0 commit comments