leptos_use/storage/
mod.rs1mod use_local_storage;
2mod use_session_storage;
3mod use_storage;
4
5pub use use_local_storage::*;
6pub use use_session_storage::*;
7pub use use_storage::*;
8
9use leptos::prelude::window;
10use wasm_bindgen::JsValue;
11
12#[derive(Default)]
14pub enum StorageType {
15 #[default]
16 Local,
17 Session,
18 Custom(web_sys::Storage),
19}
20
21impl StorageType {
22 pub fn into_storage(self) -> Result<Option<web_sys::Storage>, JsValue> {
23 match self {
24 StorageType::Local => window().local_storage(),
25 StorageType::Session => window().session_storage(),
26 StorageType::Custom(storage) => Ok(Some(storage)),
27 }
28 }
29}