cookie-monster 0.2.2

A Cookie library for managing HTTP Cookies, with Axum integration.
Documentation
use std::fmt::{self, Write};

use crate::Cookie;

/// The SameSite attribute.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum SameSite {
    Strict,
    Lax,
    None,
}

impl Cookie {
    pub(crate) fn serialize_same_site(&self, buf: &mut String) {
        let Some(same_site) = self.same_site else {
            return;
        };

        let _ = write!(buf, "; SameSite={same_site}");
    }
}

impl fmt::Display for SameSite {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        match *self {
            SameSite::Strict => write!(f, "Strict"),
            SameSite::Lax => write!(f, "Lax"),
            SameSite::None => write!(f, "None"),
        }
    }
}