use serde::{Deserialize, Serialize};
use crate::model::{Commit, DiffEntry};
use crate::view::Pagination;
use super::StatusMessage;
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct AddRemoveModifyCounts {
pub added: usize,
pub removed: usize,
pub modified: usize,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct CompareCommits {
pub base_commit: Commit,
pub head_commit: Commit,
pub commits: Vec<Commit>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct CompareCommitsResponse {
#[serde(flatten)]
pub status: StatusMessage,
#[serde(flatten)]
pub pagination: Pagination,
pub compare: CompareCommits,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct CompareEntries {
pub base_commit: Commit,
pub head_commit: Commit,
pub counts: AddRemoveModifyCounts,
pub entries: Vec<DiffEntry>,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct CompareEntryResponse {
#[serde(flatten)]
pub status: StatusMessage,
pub compare: DiffEntry,
}
#[derive(Serialize, Deserialize, Debug)]
pub struct CompareEntriesResponse {
#[serde(flatten)]
pub status: StatusMessage,
#[serde(flatten)]
pub pagination: Pagination,
pub compare: CompareEntries,
}