keyhive_wasm 0.3.0

WebAssembly wrappers for keyhive_core
Documentation
use keyhive_core::stats::Stats;
use serde::{Deserialize, Serialize};
use std::fmt;
use wasm_bindgen::prelude::wasm_bindgen;

#[wasm_bindgen(js_name = Stats)]
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct JsStats(pub(crate) Stats);

impl fmt::Display for JsStats {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(
            f,
            "Stats {{ individuals: {}, groups: {}, docs: {}, delegations: {}, revocations: {}, prekeys_expanded: {}, prekey_rotations: {}, cgka_operations: {}, active_prekey_count: {}, pending_prekeys_expanded: {}, pending_prekeys_expanded_by_active: {}, pending_prekey_rotated: {}, pending_prekey_rotated_by_active: {}, pending_cgka_operation: {}, pending_cgka_operation_by_active: {}, pending_delegated: {}, pending_delegated_by_active: {}, pending_revoked: {}, pending_revoked_by_active: {} }}",
            self.0.individuals,
            self.0.groups,
            self.0.docs,
            self.0.delegations,
            self.0.revocations,
            self.0.prekeys_expanded,
            self.0.prekey_rotations,
            self.0.cgka_operations,
            self.0.active_prekey_count,
            self.0.pending_prekeys_expanded,
            self.0.pending_prekeys_expanded_by_active,
            self.0.pending_prekey_rotated,
            self.0.pending_prekey_rotated_by_active,
            self.0.pending_cgka_operation,
            self.0.pending_cgka_operation_by_active,
            self.0.pending_delegated,
            self.0.pending_delegated_by_active,
            self.0.pending_revoked,
            self.0.pending_revoked_by_active
        )
    }
}

#[wasm_bindgen(js_class = Stats)]
impl JsStats {
    #[wasm_bindgen(getter)]
    pub fn individuals(&self) -> u64 {
        self.0.individuals
    }

    #[wasm_bindgen(getter)]
    pub fn groups(&self) -> u64 {
        self.0.groups
    }

    #[wasm_bindgen(getter)]
    pub fn docs(&self) -> u64 {
        self.0.docs
    }

    #[wasm_bindgen(getter)]
    pub fn delegations(&self) -> u64 {
        self.0.delegations
    }

    #[wasm_bindgen(getter)]
    pub fn revocations(&self) -> u64 {
        self.0.revocations
    }

    #[wasm_bindgen(getter, js_name = prekeysExpanded)]
    pub fn prekeys_expanded(&self) -> u64 {
        self.0.prekeys_expanded
    }

    #[wasm_bindgen(getter, js_name = prekeyRotations)]
    pub fn prekey_rotations(&self) -> u64 {
        self.0.prekey_rotations
    }

    #[wasm_bindgen(getter, js_name = cgkaOperations)]
    pub fn cgka_operations(&self) -> u64 {
        self.0.cgka_operations
    }

    #[wasm_bindgen(getter, js_name = activePrekeyCount)]
    pub fn active_prekey_count(&self) -> u64 {
        self.0.active_prekey_count
    }

    #[wasm_bindgen(getter, js_name = pendingPrekeysExpanded)]
    pub fn pending_prekeys_expanded(&self) -> u64 {
        self.0.pending_prekeys_expanded
    }

    #[wasm_bindgen(getter, js_name = pendingPrekeysExpandedByActive)]
    pub fn pending_prekeys_expanded_by_active(&self) -> u64 {
        self.0.pending_prekeys_expanded_by_active
    }

    #[wasm_bindgen(getter, js_name = pendingPrekeyRotated)]
    pub fn pending_prekey_rotated(&self) -> u64 {
        self.0.pending_prekey_rotated
    }

    #[wasm_bindgen(getter, js_name = pendingPrekeyRotatedByActive)]
    pub fn pending_prekey_rotated_by_active(&self) -> u64 {
        self.0.pending_prekey_rotated_by_active
    }

    #[wasm_bindgen(getter, js_name = pendingCgkaOperation)]
    pub fn pending_cgka_operation(&self) -> u64 {
        self.0.pending_cgka_operation
    }

    #[wasm_bindgen(getter, js_name = pendingCgkaOperationByActive)]
    pub fn pending_cgka_operation_by_active(&self) -> u64 {
        self.0.pending_cgka_operation_by_active
    }

    #[wasm_bindgen(getter, js_name = pendingDelegated)]
    pub fn pending_delegated(&self) -> u64 {
        self.0.pending_delegated
    }

    #[wasm_bindgen(getter, js_name = pendingDelegatedByActive)]
    pub fn pending_delegated_by_active(&self) -> u64 {
        self.0.pending_delegated_by_active
    }

    #[wasm_bindgen(getter, js_name = pendingRevoked)]
    pub fn pending_revoked(&self) -> u64 {
        self.0.pending_revoked
    }

    #[wasm_bindgen(getter, js_name = pendingRevokedByActive)]
    pub fn pending_revoked_by_active(&self) -> u64 {
        self.0.pending_revoked_by_active
    }

    #[wasm_bindgen(getter, js_name = totalOps)]
    pub fn total_ops(&self) -> u64 {
        self.0.prekeys_expanded
            + self.0.prekey_rotations
            + self.0.cgka_operations
            + self.0.delegations
            + self.0.revocations
    }

    #[wasm_bindgen(getter, js_name = totalPendingOps)]
    pub fn total_pending_ops(&self) -> u64 {
        self.0.pending_prekeys_expanded
            + self.0.pending_prekey_rotated
            + self.0.pending_cgka_operation
            + self.0.pending_delegated
            + self.0.pending_revoked
    }
}