#![allow(
missing_docs,
clippy::doc_markdown,
clippy::struct_excessive_bools,
clippy::derive_partial_eq_without_eq
)]
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PanprotoCommit {
pub author: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub complement_hashes: Option<Vec<String>>,
pub created_at: idiolect_records::Datetime,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cst_complement_hashes: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub data_hashes: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub edit_log_hashes: Option<Vec<String>>,
pub message: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub migration_hash: Option<String>,
pub object_hash: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parent_hashes: Option<Vec<String>>,
pub protocol: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub protocol_hash: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub renames: Option<Vec<SiteRename>>,
pub repo: idiolect_records::AtUri,
pub schema_hash: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub theory_ids: Option<Vec<NamedHash>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub timestamp: Option<i64>,
}
impl crate::Record for PanprotoCommit {
const NSID: &'static str = "dev.panproto.vcs.commit";
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct NamedHash {
pub name: String,
pub object_hash: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SiteRename {
pub new_name: String,
pub old_name: String,
}