gitbundle_sdk/models/
commit.rs1use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct Commit {
17 #[serde(rename = "author")]
18 pub author: Box<models::Identity>,
19 #[serde(rename = "committer")]
20 pub committer: Box<models::Identity>,
21 #[serde(rename = "file_stats")]
22 pub file_stats: Vec<models::CommitFileStats>,
23 #[serde(rename = "message")]
24 pub message: String,
25 #[serde(rename = "parent_shas")]
26 pub parent_shas: Vec<String>,
27 #[serde(rename = "sha")]
28 pub sha: String,
29 #[serde(
30 rename = "signature",
31 default,
32 with = "::serde_with::rust::double_option",
33 skip_serializing_if = "Option::is_none"
34 )]
35 pub signature: Option<Option<Box<models::CommitGpgSignature>>>,
36 #[serde(rename = "title")]
37 pub title: String,
38}
39
40impl Commit {
41 pub fn new(
42 author: models::Identity,
43 committer: models::Identity,
44 file_stats: Vec<models::CommitFileStats>,
45 message: String,
46 parent_shas: Vec<String>,
47 sha: String,
48 title: String,
49 ) -> Commit {
50 Commit {
51 author: Box::new(author),
52 committer: Box::new(committer),
53 file_stats,
54 message,
55 parent_shas,
56 sha,
57 signature: None,
58 title,
59 }
60 }
61}