bitbox-api 0.12.0

A library to interact with BitBox hardware wallets
Documentation
// SPDX-License-Identifier: Apache-2.0

pub fn get<T: serde::de::DeserializeOwned>(key: &str) -> Result<T, ()> {
    let window = web_sys::window().ok_or(())?;
    let local_storage = match window.local_storage() {
        Ok(Some(ls)) => ls,
        _ => return Err(()),
    };

    match local_storage.get_item(key) {
        Ok(Some(config_str)) => serde_json::from_str(&config_str).or(Err(())),
        _ => Err(()),
    }
}

pub fn set<T: serde::Serialize>(key: &str, value: &T) -> Result<(), ()> {
    let window = web_sys::window().ok_or(())?;
    let local_storage = match window.local_storage() {
        Ok(Some(ls)) => ls,
        _ => return Err(()),
    };

    let value_str = serde_json::to_string(value).or(Err(()))?;

    local_storage.set_item(key, &value_str).or(Err(()))
}