#[derive(Debug, Clone, PartialEq, Eq)]
pub struct RemoteEndpoint {
pub name: String,
pub url: String,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct SyncStatus {
pub remote: String,
pub variation: String,
pub ahead: usize,
pub behind: usize,
pub state: SyncState,
pub incoming: Vec<RemoteVersionSummary>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum SyncState {
UpToDate,
LocalAhead,
IncomingAvailable,
NeedsMerge,
NoRemoteVersion,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct RemoteVersionSummary {
pub id: String,
pub label: String,
pub author: Contributor,
pub time_seconds: i64,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct PublishResult {
pub remote: String,
pub variation: String,
pub published_versions: usize,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Contributor {
pub name: String,
pub email: Option<String>,
}