iop_sdk_wasm/morpheus/
public_kind.rs1use super::*;
2
3#[wasm_bindgen(js_name = MorpheusPublicKind)]
7pub struct JsMorpheusPublicKind {
8 inner: MorpheusPublicKind,
9}
10
11#[wasm_bindgen(js_class = MorpheusPublicKind)]
12impl JsMorpheusPublicKind {
13 #[wasm_bindgen(getter)]
15 pub fn kind(&self) -> String {
16 format!("{:?}", self.inner.path())
17 }
18
19 #[wasm_bindgen(getter)]
21 pub fn count(&self) -> Result<u32, JsValue> {
22 self.inner.len().map_err_to_js().map(|c| c as u32)
23 }
24
25 pub fn key(&self, idx: i32) -> Result<JsMPublicKey, JsValue> {
29 let inner = self.inner.key(idx).map_err_to_js()?;
30 Ok(JsMPublicKey::from(inner))
31 }
32
33 pub fn did(&self, idx: i32) -> Result<JsDid, JsValue> {
37 let pk = self.inner.key(idx).map_err_to_js()?;
38 let inner = Did::from(pk.key_id());
39 Ok(JsDid::from(inner))
40 }
41
42 #[wasm_bindgen(js_name = keyById)]
46 pub fn key_by_id(&self, id: &JsMKeyId) -> Result<JsMPublicKey, JsValue> {
47 let inner = self.inner.key_by_id(id.inner()).map_err_to_js()?;
48 Ok(JsMPublicKey::from(inner))
49 }
50}
51
52impl From<MorpheusPublicKind> for JsMorpheusPublicKind {
53 fn from(inner: MorpheusPublicKind) -> Self {
54 Self { inner }
55 }
56}
57
58impl Wraps<MorpheusPublicKind> for JsMorpheusPublicKind {
59 fn inner(&self) -> &MorpheusPublicKind {
60 &self.inner
61 }
62}