cookie_monster/cookie/
same_site.rs

1use std::fmt::{self, Write};
2
3use crate::Cookie;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
6pub enum SameSite {
7    Strict,
8    Lax,
9    None,
10}
11
12impl Cookie {
13    pub(crate) fn serialize_same_site(&self, buf: &mut String) {
14        let Some(same_site) = self.same_site else {
15            return;
16        };
17
18        let _ = write!(buf, "; SameSite={same_site}");
19    }
20}
21
22impl fmt::Display for SameSite {
23    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
24        match *self {
25            SameSite::Strict => write!(f, "Strict"),
26            SameSite::Lax => write!(f, "Lax"),
27            SameSite::None => write!(f, "None"),
28        }
29    }
30}