web_extensions_sys/
storage.rs

1use crate::EventTarget;
2use js_sys::Object;
3use wasm_bindgen::prelude::*;
4
5#[wasm_bindgen]
6extern "C" {
7    pub type StorageAreaRead;
8
9    #[wasm_bindgen(catch, method, js_name = "getBytesInUse")]
10    pub async fn get_bytes_in_use(
11        this: &StorageAreaRead,
12        keys: &JsValue,
13    ) -> Result<JsValue, JsValue>;
14
15    #[wasm_bindgen(catch, method)]
16    pub async fn get(this: &StorageAreaRead, keys: &JsValue) -> Result<JsValue, JsValue>;
17}
18
19#[wasm_bindgen]
20extern "C" {
21    #[wasm_bindgen(extends = StorageAreaRead)]
22    pub type StorageArea;
23
24    #[wasm_bindgen(catch, method)]
25    pub async fn set(this: &StorageArea, keys: &Object) -> Result<JsValue, JsValue>;
26
27    #[wasm_bindgen(catch, method)]
28    pub async fn remove(this: &StorageArea, keys: &JsValue) -> Result<JsValue, JsValue>;
29
30    #[wasm_bindgen(catch, method)]
31    pub async fn clear(this: &StorageArea) -> Result<JsValue, JsValue>;
32}
33
34#[wasm_bindgen]
35extern "C" {
36    pub type Storage;
37
38    #[wasm_bindgen(method, getter)]
39    pub fn sync(this: &Storage) -> StorageArea;
40
41    #[wasm_bindgen(method, getter)]
42    pub fn local(this: &Storage) -> StorageArea;
43
44    #[wasm_bindgen(method, getter)]
45    pub fn session(this: &Storage) -> StorageArea;
46
47    #[wasm_bindgen(method, getter)]
48    pub fn managed(this: &Storage) -> StorageAreaRead;
49
50    #[wasm_bindgen(method, getter, js_name = onChanged)]
51    pub fn on_changed(this: &Storage) -> EventTarget;
52}
53
54#[wasm_bindgen]
55extern "C" {
56    pub type StorageChange;
57
58    #[wasm_bindgen(method, getter, js_name = oldValue)]
59    pub fn old_value(this: &StorageChange) -> JsValue;
60
61    #[wasm_bindgen(method, getter, js_name = newValue)]
62    pub fn new_value(this: &StorageChange) -> JsValue;
63}