Skip to main content

xmtp_mls_core/
config.rs

1//! Client configuration values that every layer reads.
2
3#[derive(Clone, Copy, Debug, PartialEq, Eq)]
4pub enum DeviceSyncMode {
5    Disabled,
6    Enabled,
7}
8
9#[derive(Clone, Debug, PartialEq)]
10pub enum ForkRecoveryPolicy {
11    None,
12    AllowlistedGroups,
13    All,
14}
15
16#[derive(Clone, Debug)]
17pub struct ForkRecoveryOpts {
18    pub enable_recovery_requests: ForkRecoveryPolicy,
19    pub groups_to_request_recovery: Vec<String>,
20    pub disable_recovery_responses: bool,
21    pub worker_interval_ns: Option<u64>,
22}
23
24impl Default for ForkRecoveryOpts {
25    fn default() -> Self {
26        Self {
27            enable_recovery_requests: ForkRecoveryPolicy::None,
28            groups_to_request_recovery: Vec::new(),
29            disable_recovery_responses: false,
30            worker_interval_ns: None,
31        }
32    }
33}
34
35#[derive(Clone)]
36pub struct DeviceSync {
37    /// Whether device sync runs.
38    pub mode: DeviceSyncMode,
39}