Add sync object pause controls
This commit is contained in:
@@ -48,7 +48,8 @@ pub use site_permission::{
|
||||
pub use space::{ArchivePolicy, Space};
|
||||
pub use split::{MAX_SPLIT_PANES, SplitAxis, SplitLayout, SplitPane};
|
||||
pub use sync::{
|
||||
SyncConnectionState, SyncObjectKind, SyncObjectState, SyncObjectStatus, SyncStatus,
|
||||
SyncConnectionState, SyncObjectKind, SyncObjectPolicy, SyncObjectState, SyncObjectStatus,
|
||||
SyncStatus,
|
||||
};
|
||||
pub use tab::{BrowserTab, TabFlags, TabState};
|
||||
pub use url_text::UrlText;
|
||||
|
||||
@@ -3,7 +3,7 @@ pub enum SyncConnectionState {
|
||||
SignedOut,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
|
||||
pub enum SyncObjectKind {
|
||||
Spaces,
|
||||
Tabs,
|
||||
@@ -15,9 +15,17 @@ pub enum SyncObjectKind {
|
||||
PluginSettings,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||
#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)]
|
||||
pub enum SyncObjectPolicy {
|
||||
#[default]
|
||||
Enabled,
|
||||
Paused,
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
|
||||
pub enum SyncObjectState {
|
||||
LocalOnly,
|
||||
Paused,
|
||||
PrivacyControlled,
|
||||
}
|
||||
|
||||
@@ -26,6 +34,7 @@ pub struct SyncObjectStatus {
|
||||
kind: SyncObjectKind,
|
||||
local_count: usize,
|
||||
state: SyncObjectState,
|
||||
policy: SyncObjectPolicy,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||
@@ -39,12 +48,22 @@ pub struct SyncStatus {
|
||||
impl SyncObjectStatus {
|
||||
#[must_use]
|
||||
pub fn new(kind: SyncObjectKind, local_count: usize, state: SyncObjectState) -> Self {
|
||||
Self { kind, local_count, state }
|
||||
Self::with_policy(kind, local_count, state, SyncObjectPolicy::Enabled)
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn kind(&self) -> &SyncObjectKind {
|
||||
&self.kind
|
||||
pub fn with_policy(
|
||||
kind: SyncObjectKind,
|
||||
local_count: usize,
|
||||
state: SyncObjectState,
|
||||
policy: SyncObjectPolicy,
|
||||
) -> Self {
|
||||
Self { kind, local_count, state, policy }
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn kind(&self) -> SyncObjectKind {
|
||||
self.kind
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
@@ -53,8 +72,13 @@ impl SyncObjectStatus {
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn state(&self) -> &SyncObjectState {
|
||||
&self.state
|
||||
pub fn state(&self) -> SyncObjectState {
|
||||
self.state
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub fn policy(&self) -> SyncObjectPolicy {
|
||||
self.policy
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user