Skip to main content

gitbundle_sdk/models/
commit.rs

1/*
2 * GitBundle API
3 *
4 * GitBundle API documentation.
5 *
6 * The version of the OpenAPI document: 3.4.1
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use 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}