pub struct Cookies { /* private fields */ }Expand description
The app’s own cookies (the session has its own). Read them with the
Cookies extractor; set them by returning a SetCookie with the
response.
use std::time::Duration;
use renox::{Cookies, SetCookie};
async fn page(cookies: Cookies) -> View {
let theme = cookies.get("theme").unwrap_or_else(|| "light".into());
let referral = cookies.get_encrypted("ref"); // set with SetCookie::encrypted
view("page.html", context! { theme, referral })
}
async fn pick_theme(State(state): State<AppState>, Path(theme): Path<String>) -> (SetCookie, Redirect) {
let cookie = SetCookie::new(&state, "theme", theme).max_age(Duration::from_secs(365 * 86_400));
(cookie, Redirect::to("/"))
}
async fn forget(State(state): State<AppState>) -> (SetCookie, Redirect) {
(SetCookie::remove(&state, "theme"), Redirect::to("/"))
}Cookies holds the cookies a request came with.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Cookies
impl RefUnwindSafe for Cookies
impl Send for Cookies
impl Sync for Cookies
impl Unpin for Cookies
impl UnsafeUnpin for Cookies
impl UnwindSafe for Cookies
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<S, T> FromRequest<S, ViaParts> for T
impl<S, T> FromRequest<S, ViaParts> for T
Source§type Rejection = <T as FromRequestParts<S>>::Rejection
type Rejection = <T as FromRequestParts<S>>::Rejection
If the extractor fails it’ll use this “rejection” type. A rejection is
a kind of error that can be converted into a response.
Source§fn from_request(
req: Request<Body>,
state: &S,
) -> impl Future<Output = Result<T, <T as FromRequest<S, ViaParts>>::Rejection>>
fn from_request( req: Request<Body>, state: &S, ) -> impl Future<Output = Result<T, <T as FromRequest<S, ViaParts>>::Rejection>>
Perform the extraction.
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more