chrome_types/sys/
storage.rs1use js_sys::Object;
2use wasm_bindgen::prelude::*;
3
4#[wasm_bindgen]
5extern "C" {
6 pub type Storage;
8
9 #[wasm_bindgen(method, getter = "local")]
10 pub fn local(this: &Storage) -> StorageArea;
11
12 #[wasm_bindgen(method, getter = "session")]
13 pub fn session(this: &Storage) -> StorageArea;
14
15 #[wasm_bindgen(method, getter = "sync")]
16 pub fn sync(this: &Storage) -> StorageArea;
17}
18
19#[wasm_bindgen]
20extern "C" {
21 pub type StorageArea;
22
23 #[wasm_bindgen(method, catch, js_name = "clear")]
24 pub async fn clear(this: &StorageArea) -> Result<JsValue, JsValue>;
25
26 #[wasm_bindgen(method, catch, js_name = "get")]
27 pub async fn get(this: &StorageArea, keys: &JsValue) -> Result<JsValue, JsValue>;
28
29 #[wasm_bindgen(method, catch, js_name = "remove")]
30 pub async fn remove(this: &StorageArea, keys: &JsValue) -> Result<JsValue, JsValue>;
31
32 #[wasm_bindgen(method, catch, js_name = "set")]
33 pub async fn set(this: &StorageArea, keys: &Object) -> Result<JsValue, JsValue>;
34
35 #[wasm_bindgen(method, catch, js_name = "setAccessLevel")]
36 pub async fn set_access_level(this: &StorageArea, options: AccessOptions) -> Result<(), JsValue>;
37}
38
39#[wasm_bindgen]
40extern "C" {
41 pub type AccessOptions;
42
43 #[wasm_bindgen(method, getter = "accessLevel")]
44 pub fn access_level(this: &AccessOptions) -> AccessLevel;
45 #[wasm_bindgen(method, setter = "accessLevel")]
46 pub fn set_access_level(this: &AccessOptions, level: AccessLevel);
47}
48
49impl AccessOptions {
50 pub fn new(level: AccessLevel) -> Self {
51 let value: Self = Object::new().unchecked_into();
52 value.set_access_level(level);
53 value
54 }
55
56 pub fn trusted() -> Self {
57 Self::new(AccessLevel::Trusted)
58 }
59
60 pub fn untrusted() -> Self {
61 Self::new(AccessLevel::Untrusted)
62 }
63}
64
65impl Default for AccessOptions {
66 fn default() -> Self {
67 Self::trusted()
68 }
69}
70
71#[wasm_bindgen]
72#[derive(Clone, Copy, Debug, PartialEq, Eq)]
73pub enum AccessLevel {
74 Trusted = "TRUSTED_CONTEXTS",
75 Untrusted = "TRUSTED_AND_UNTRUSTED_CONTEXTS",
76}