#![allow(dead_code)]
#![allow(non_snake_case)]
#![allow(non_camel_case_types)]
#![allow(unused_imports)]
use serde::{Serialize, Deserialize};
use serde_repr::{Deserialize_repr, Serialize_repr};use super::*;
use super::common::*;
use super::favorite::*;
#[derive(Serialize, Deserialize, Debug)]
pub struct EncryptedGitMetadata {
pub v: Option<i32>,
#[serde(default)]
pub e: Option<String>,
pub n: Option<BoxNonce>,
pub gen: Option<PerTeamKeyGeneration>,
}
pub type RepoID = String;
#[derive(Serialize_repr, Deserialize_repr, Debug, Hash, PartialEq, Eq)]
#[repr(u8)]
pub enum GitLocalMetadataVersion {
V1_1,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct GitLocalMetadataV1 {
pub repoName: Option<GitRepoName>,
}
#[derive(Serialize, Deserialize, Debug)]
#[serde(untagged)]
pub enum GitLocalMetadataVersioned {
V1 {v1: GitLocalMetadataV1},
}
#[derive(Serialize, Deserialize, Debug)]
pub struct GitCommit {
#[serde(default)]
pub commitHash: Option<String>,
#[serde(default)]
pub message: Option<String>,
#[serde(default)]
pub authorName: Option<String>,
#[serde(default)]
pub authorEmail: Option<String>,
pub ctime: Option<Time>,
}
#[derive(Serialize_repr, Deserialize_repr, Debug, Hash, PartialEq, Eq)]
#[repr(u8)]
pub enum GitPushType {
Default_0,
Createrepo_1,
Renamerepo_3,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct GitRefMetadata {
#[serde(default)]
pub refName: Option<String>,
#[serde(default)]
pub commits: Option<Vec<GitCommit>>,
#[serde(default)]
pub moreCommitsAvailable: Option<bool>,
#[serde(default)]
pub isDelete: Option<bool>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct GitLocalMetadata {
pub repoName: Option<GitRepoName>,
#[serde(default)]
pub refs: Option<Vec<GitRefMetadata>>,
pub pushType: Option<GitPushType>,
pub previousRepoName: Option<GitRepoName>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct GitServerMetadata {
pub ctime: Option<Time>,
pub mtime: Option<Time>,
#[serde(default)]
pub lastModifyingUsername: Option<String>,
pub lastModifyingDeviceID: Option<DeviceID>,
#[serde(default)]
pub lastModifyingDeviceName: Option<String>,
}
#[derive(Serialize_repr, Deserialize_repr, Debug, Hash, PartialEq, Eq)]
#[repr(u8)]
pub enum GitRepoResultState {
Err_0,
Ok_1,
}
#[derive(Serialize, Deserialize, Debug)]
#[serde(untagged)]
pub enum GitRepoResult {
Err {err: String},
Ok {ok: GitRepoInfo},
}
#[derive(Serialize, Deserialize, Debug)]
pub struct GitRepoInfo {
pub folder: Option<FolderHandle>,
pub repoID: Option<RepoID>,
pub localMetadata: Option<GitLocalMetadata>,
pub serverMetadata: Option<GitServerMetadata>,
#[serde(default)]
pub repoUrl: Option<String>,
#[serde(default)]
pub globalUniqueID: Option<String>,
#[serde(default)]
pub canDelete: Option<bool>,
pub teamRepoSettings: Option<GitTeamRepoSettings>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct GitTeamRepoSettings {
pub channelName: Option<String>,
#[serde(default)]
pub chatDisabled: Option<bool>,
}