keyhive_wasm 0.3.0

WebAssembly wrappers for keyhive_core
Documentation
use derive_more::{Deref, Display, From, Into};
use dupe::Dupe;
use keyhive_core::access::Access;
use wasm_bindgen::prelude::*;

#[wasm_bindgen(js_name = Access)]
#[derive(Debug, Clone, Dupe, Copy, Deref, Display, From, Into)]
pub struct JsAccess(pub(crate) Access);

#[wasm_bindgen(js_class = Access)]
impl JsAccess {
    #[wasm_bindgen(js_name = tryFromString)]
    pub fn try_from_string(s: String) -> Option<JsAccess> {
        match s.as_str() {
            "relay" => Some(JsAccess(Access::Relay)),
            "read" => Some(JsAccess(Access::Read)),
            "edit" => Some(JsAccess(Access::Edit)),
            "admin" => Some(JsAccess(Access::Admin)),
            _ => None,
        }
    }

    #[wasm_bindgen(js_name = toString)]
    pub fn to_js_string(&self) -> String {
        self.to_string()
    }
}