lxmf-sdk 0.9.0

High-level Rust SDK for LXMF clients and RPC-backed LXMF workflows.
Documentation
#[derive(Clone, Debug, Default, Serialize, Deserialize, PartialEq, Eq)]
pub struct RouterStoragePolicy {
    pub message_limit_bytes: Option<u64>,
    pub information_limit_bytes: Option<u64>,
    pub retain_node_lxms: bool,
}

#[derive(Clone, Debug, Default, Serialize, Deserialize, PartialEq, Eq)]
pub struct RouterStoragePolicyPatch {
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub message_limit_bytes: Option<u64>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub information_limit_bytes: Option<u64>,
    #[serde(default, skip_serializing_if = "Option::is_none")]
    pub retain_node_lxms: Option<bool>,
}

impl RouterStoragePolicyPatch {
    pub fn is_empty(&self) -> bool {
        self.message_limit_bytes.is_none()
            && self.information_limit_bytes.is_none()
            && self.retain_node_lxms.is_none()
    }
}

#[derive(Clone, Debug, Default, Serialize, Deserialize, PartialEq, Eq)]
pub struct RouterStats {
    pub messages: u64,
    pub message_bytes: u64,
    pub peers: u64,
    pub interfaces: u64,
    pub tickets: u64,
    pub propagation_payloads: u64,
    pub outbound_inflight: u64,
    pub propagation_enabled: bool,
    pub propagation_node_enabled: bool,
    pub storage_policy: RouterStoragePolicy,
}