use kekse::{Cookie, CookieJar, ValueEncoding};
fn main() {
let jar = CookieJar::parse_strict("SID=; SID=deadbeef; theme=dark; theme=light").into_value();
println!("all pairs, in wire order:");
for c in jar.iter() {
println!(" {} = {:?}", c.name(), c.value());
}
let sid = jar
.get_all("SID")
.find(|c| !c.value().is_empty())
.map(|c| c.value());
println!("session id (first non-empty): {sid:?}");
assert_eq!(sid, Some("deadbeef"));
println!(
"first SID (raw `get`): {:?}",
jar.get("SID").map(|c| c.value())
);
let mut jar = CookieJar::parse_strict("a=1; b=2; c=3").into_value();
jar.remove("b"); jar.replace(Cookie::new("c", "30")); jar.add(Cookie::new("d", "4")); let rebuilt = jar.to_header_string(ValueEncoding::Percent);
println!("rebuilt header: {rebuilt}");
assert_eq!(rebuilt, "a=1; c=30; d=4");
}