pub fn merge_sync_settings(settings: Vec<SyncSettings>) -> SyncSettingsExpand description
Merge multiple user sync settings into a single combined setting.
Uses the “most aggressive” strategy:
sync_enabled: OR (true if any user wants sync)sync_on_commit: OR (true if any user wants it)interval_seconds: MIN (most frequent sync wins)properties: UNION (combine all properties, later values override)
§Arguments
settings- Vector of sync settings from different users
§Returns
Combined sync settings, or a default if the input is empty
§Examples
use eidetica::instance::settings_merge::merge_sync_settings;
use eidetica::user::types::SyncSettings;
let settings1 = SyncSettings {
sync_enabled: true,
sync_on_commit: false,
interval_seconds: Some(300),
properties: Default::default(),
};
let settings2 = SyncSettings {
sync_enabled: false,
sync_on_commit: true,
interval_seconds: Some(60),
properties: Default::default(),
};
let combined = merge_sync_settings(vec![settings1, settings2]);
// Most aggressive wins
assert_eq!(combined.sync_enabled, true); // OR
assert_eq!(combined.sync_on_commit, true); // OR
assert_eq!(combined.interval_seconds, Some(60)); // MIN