keybase-protocol 0.1.1

Provides the Keybase types defined in the Keybase AVDL Protocol files for Rust.
Documentation
// Namespace: "keybase.1"
// Protocol: "git"
#![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>,
}