1pub mod cookies;
2pub use cookies::{AllDecodeError, CookieOptions, SameSite};
3pub use urlencoding::FromUrlEncodingError;
4
5#[cfg(target_arch = "wasm32")]
6use std::collections::HashMap;
7#[cfg(target_arch = "wasm32")]
8use web_sys::HtmlDocument;
9
10#[cfg(target_arch = "wasm32")]
11fn document() -> HtmlDocument {
12 use wasm_bindgen::JsCast;
13
14 web_sys::window()
15 .unwrap()
16 .document()
17 .unwrap()
18 .dyn_into::<HtmlDocument>()
19 .unwrap()
20}
21
22#[cfg(target_arch = "wasm32")]
23fn cookie_string() -> String {
24 document().cookie().unwrap()
25}
26
27#[cfg(target_arch = "wasm32")]
28fn set_cookie_string(value: &str) {
29 document().set_cookie(value).unwrap();
30}
31
32#[cfg(target_arch = "wasm32")]
36pub fn all_raw() -> HashMap<String, String> {
37 cookies::all_raw(&cookie_string())
38}
39
40#[cfg(target_arch = "wasm32")]
46pub fn all() -> Result<HashMap<String, String>, AllDecodeError> {
47 cookies::all(&cookie_string())
48}
49
50#[cfg(target_arch = "wasm32")]
54pub fn get_raw(name: &str) -> Option<String> {
55 cookies::get_raw(&cookie_string(), name)
56}
57
58#[cfg(target_arch = "wasm32")]
64pub fn get(name: &str) -> Option<Result<String, FromUrlEncodingError>> {
65 cookies::get(&cookie_string(), name)
66}
67
68#[cfg(target_arch = "wasm32")]
72pub fn set_raw(name: &str, value: &str, options: &CookieOptions) {
73 set_cookie_string(&cookies::set_raw(name, value, options));
74}
75
76#[cfg(target_arch = "wasm32")]
81pub fn set(name: &str, value: &str, options: &CookieOptions) {
82 set_cookie_string(&cookies::set(name, value, options));
83}
84
85#[cfg(target_arch = "wasm32")]
89pub fn delete_raw(name: &str) {
90 set_cookie_string(&cookies::delete_raw(name));
91}
92
93#[cfg(target_arch = "wasm32")]
97pub fn delete(name: &str) {
98 set_cookie_string(&cookies::delete(name));
99}