gitbundle_sdk/models/
release_model.rs1use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct ReleaseModel {
17 #[serde(rename = "assets", skip_serializing_if = "Option::is_none")]
18 pub assets: Option<Vec<String>>,
19 #[serde(rename = "contributors", skip_serializing_if = "Option::is_none")]
20 pub contributors: Option<Vec<models::Contributor>>,
21 #[serde(rename = "created")]
22 pub created: i64,
23 #[serde(rename = "created_by")]
24 pub created_by: i64,
25 #[serde(
26 rename = "deleted",
27 default,
28 with = "::serde_with::rust::double_option",
29 skip_serializing_if = "Option::is_none"
30 )]
31 pub deleted: Option<Option<i64>>,
32 #[serde(rename = "description")]
33 pub description: String,
34 #[serde(rename = "id")]
35 pub id: i64,
36 #[serde(rename = "is_draft")]
37 pub is_draft: bool,
38 #[serde(
39 rename = "is_latest",
40 default,
41 with = "::serde_with::rust::double_option",
42 skip_serializing_if = "Option::is_none"
43 )]
44 pub is_latest: Option<Option<bool>>,
45 #[serde(rename = "is_prerelease")]
46 pub is_prerelease: bool,
47 #[serde(rename = "num_commits")]
48 pub num_commits: i64,
49 #[serde(
50 rename = "origin_author",
51 default,
52 with = "::serde_with::rust::double_option",
53 skip_serializing_if = "Option::is_none"
54 )]
55 pub origin_author: Option<Option<String>>,
56 #[serde(
57 rename = "origin_author_id",
58 default,
59 with = "::serde_with::rust::double_option",
60 skip_serializing_if = "Option::is_none"
61 )]
62 pub origin_author_id: Option<Option<i64>>,
63 #[serde(rename = "repo_id")]
64 pub repo_id: i64,
65 #[serde(rename = "sha1")]
66 pub sha1: String,
67 #[serde(rename = "tag_name")]
68 pub tag_name: String,
69 #[serde(rename = "title")]
70 pub title: String,
71 #[serde(rename = "updated")]
72 pub updated: i64,
73 #[serde(rename = "version")]
74 pub version: i64,
75}
76
77impl ReleaseModel {
78 pub fn new(
79 created: i64,
80 created_by: i64,
81 description: String,
82 id: i64,
83 is_draft: bool,
84 is_prerelease: bool,
85 num_commits: i64,
86 repo_id: i64,
87 sha1: String,
88 tag_name: String,
89 title: String,
90 updated: i64,
91 version: i64,
92 ) -> ReleaseModel {
93 ReleaseModel {
94 assets: None,
95 contributors: None,
96 created,
97 created_by,
98 deleted: None,
99 description,
100 id,
101 is_draft,
102 is_latest: None,
103 is_prerelease,
104 num_commits,
105 origin_author: None,
106 origin_author_id: None,
107 repo_id,
108 sha1,
109 tag_name,
110 title,
111 updated,
112 version,
113 }
114 }
115}