1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct RepoSearchResultItem {
17 #[serde(rename = "id")]
18 pub id: i32,
19 #[serde(rename = "node_id")]
20 pub node_id: String,
21 #[serde(rename = "name")]
22 pub name: String,
23 #[serde(rename = "full_name")]
24 pub full_name: String,
25 #[serde(rename = "owner", deserialize_with = "Option::deserialize")]
26 pub owner: Option<Box<models::NullableSimpleUser>>,
27 #[serde(rename = "private")]
28 pub private: bool,
29 #[serde(rename = "html_url")]
30 pub html_url: String,
31 #[serde(rename = "description", deserialize_with = "Option::deserialize")]
32 pub description: Option<String>,
33 #[serde(rename = "fork")]
34 pub fork: bool,
35 #[serde(rename = "url")]
36 pub url: String,
37 #[serde(rename = "created_at")]
38 pub created_at: String,
39 #[serde(rename = "updated_at")]
40 pub updated_at: String,
41 #[serde(rename = "pushed_at")]
42 pub pushed_at: String,
43 #[serde(rename = "homepage", deserialize_with = "Option::deserialize")]
44 pub homepage: Option<String>,
45 #[serde(rename = "size")]
46 pub size: i32,
47 #[serde(rename = "stargazers_count")]
48 pub stargazers_count: i32,
49 #[serde(rename = "watchers_count")]
50 pub watchers_count: i32,
51 #[serde(rename = "language", deserialize_with = "Option::deserialize")]
52 pub language: Option<String>,
53 #[serde(rename = "forks_count")]
54 pub forks_count: i32,
55 #[serde(rename = "open_issues_count")]
56 pub open_issues_count: i32,
57 #[serde(rename = "master_branch", skip_serializing_if = "Option::is_none")]
58 pub master_branch: Option<String>,
59 #[serde(rename = "default_branch")]
60 pub default_branch: String,
61 #[serde(rename = "score")]
62 pub score: f64,
63 #[serde(rename = "forks_url")]
64 pub forks_url: String,
65 #[serde(rename = "keys_url")]
66 pub keys_url: String,
67 #[serde(rename = "collaborators_url")]
68 pub collaborators_url: String,
69 #[serde(rename = "teams_url")]
70 pub teams_url: String,
71 #[serde(rename = "hooks_url")]
72 pub hooks_url: String,
73 #[serde(rename = "issue_events_url")]
74 pub issue_events_url: String,
75 #[serde(rename = "events_url")]
76 pub events_url: String,
77 #[serde(rename = "assignees_url")]
78 pub assignees_url: String,
79 #[serde(rename = "branches_url")]
80 pub branches_url: String,
81 #[serde(rename = "tags_url")]
82 pub tags_url: String,
83 #[serde(rename = "blobs_url")]
84 pub blobs_url: String,
85 #[serde(rename = "git_tags_url")]
86 pub git_tags_url: String,
87 #[serde(rename = "git_refs_url")]
88 pub git_refs_url: String,
89 #[serde(rename = "trees_url")]
90 pub trees_url: String,
91 #[serde(rename = "statuses_url")]
92 pub statuses_url: String,
93 #[serde(rename = "languages_url")]
94 pub languages_url: String,
95 #[serde(rename = "stargazers_url")]
96 pub stargazers_url: String,
97 #[serde(rename = "contributors_url")]
98 pub contributors_url: String,
99 #[serde(rename = "subscribers_url")]
100 pub subscribers_url: String,
101 #[serde(rename = "subscription_url")]
102 pub subscription_url: String,
103 #[serde(rename = "commits_url")]
104 pub commits_url: String,
105 #[serde(rename = "git_commits_url")]
106 pub git_commits_url: String,
107 #[serde(rename = "comments_url")]
108 pub comments_url: String,
109 #[serde(rename = "issue_comment_url")]
110 pub issue_comment_url: String,
111 #[serde(rename = "contents_url")]
112 pub contents_url: String,
113 #[serde(rename = "compare_url")]
114 pub compare_url: String,
115 #[serde(rename = "merges_url")]
116 pub merges_url: String,
117 #[serde(rename = "archive_url")]
118 pub archive_url: String,
119 #[serde(rename = "downloads_url")]
120 pub downloads_url: String,
121 #[serde(rename = "issues_url")]
122 pub issues_url: String,
123 #[serde(rename = "pulls_url")]
124 pub pulls_url: String,
125 #[serde(rename = "milestones_url")]
126 pub milestones_url: String,
127 #[serde(rename = "notifications_url")]
128 pub notifications_url: String,
129 #[serde(rename = "labels_url")]
130 pub labels_url: String,
131 #[serde(rename = "releases_url")]
132 pub releases_url: String,
133 #[serde(rename = "deployments_url")]
134 pub deployments_url: String,
135 #[serde(rename = "git_url")]
136 pub git_url: String,
137 #[serde(rename = "ssh_url")]
138 pub ssh_url: String,
139 #[serde(rename = "clone_url")]
140 pub clone_url: String,
141 #[serde(rename = "svn_url")]
142 pub svn_url: String,
143 #[serde(rename = "forks")]
144 pub forks: i32,
145 #[serde(rename = "open_issues")]
146 pub open_issues: i32,
147 #[serde(rename = "watchers")]
148 pub watchers: i32,
149 #[serde(rename = "topics", skip_serializing_if = "Option::is_none")]
150 pub topics: Option<Vec<String>>,
151 #[serde(rename = "mirror_url", deserialize_with = "Option::deserialize")]
152 pub mirror_url: Option<String>,
153 #[serde(rename = "has_issues")]
154 pub has_issues: bool,
155 #[serde(rename = "has_projects")]
156 pub has_projects: bool,
157 #[serde(rename = "has_pages")]
158 pub has_pages: bool,
159 #[serde(rename = "has_wiki")]
160 pub has_wiki: bool,
161 #[serde(rename = "has_downloads")]
162 pub has_downloads: bool,
163 #[serde(rename = "has_discussions", skip_serializing_if = "Option::is_none")]
164 pub has_discussions: Option<bool>,
165 #[serde(rename = "archived")]
166 pub archived: bool,
167 #[serde(rename = "disabled")]
169 pub disabled: bool,
170 #[serde(rename = "visibility", skip_serializing_if = "Option::is_none")]
172 pub visibility: Option<String>,
173 #[serde(rename = "license", deserialize_with = "Option::deserialize")]
174 pub license: Option<Box<models::NullableLicenseSimple>>,
175 #[serde(rename = "permissions", skip_serializing_if = "Option::is_none")]
176 pub permissions: Option<Box<models::FullRepositoryPermissions>>,
177 #[serde(rename = "text_matches", skip_serializing_if = "Option::is_none")]
178 pub text_matches: Option<Vec<models::SearchResultTextMatchesInner>>,
179 #[serde(rename = "temp_clone_token", skip_serializing_if = "Option::is_none")]
180 pub temp_clone_token: Option<String>,
181 #[serde(rename = "allow_merge_commit", skip_serializing_if = "Option::is_none")]
182 pub allow_merge_commit: Option<bool>,
183 #[serde(rename = "allow_squash_merge", skip_serializing_if = "Option::is_none")]
184 pub allow_squash_merge: Option<bool>,
185 #[serde(rename = "allow_rebase_merge", skip_serializing_if = "Option::is_none")]
186 pub allow_rebase_merge: Option<bool>,
187 #[serde(rename = "allow_auto_merge", skip_serializing_if = "Option::is_none")]
188 pub allow_auto_merge: Option<bool>,
189 #[serde(rename = "delete_branch_on_merge", skip_serializing_if = "Option::is_none")]
190 pub delete_branch_on_merge: Option<bool>,
191 #[serde(rename = "allow_forking", skip_serializing_if = "Option::is_none")]
192 pub allow_forking: Option<bool>,
193 #[serde(rename = "is_template", skip_serializing_if = "Option::is_none")]
194 pub is_template: Option<bool>,
195 #[serde(rename = "web_commit_signoff_required", skip_serializing_if = "Option::is_none")]
196 pub web_commit_signoff_required: Option<bool>,
197}
198
199impl RepoSearchResultItem {
200 pub fn new(id: i32, node_id: String, name: String, full_name: String, owner: Option<models::NullableSimpleUser>, private: bool, html_url: String, description: Option<String>, fork: bool, url: String, created_at: String, updated_at: String, pushed_at: String, homepage: Option<String>, size: i32, stargazers_count: i32, watchers_count: i32, language: Option<String>, forks_count: i32, open_issues_count: i32, default_branch: String, score: f64, forks_url: String, keys_url: String, collaborators_url: String, teams_url: String, hooks_url: String, issue_events_url: String, events_url: String, assignees_url: String, branches_url: String, tags_url: String, blobs_url: String, git_tags_url: String, git_refs_url: String, trees_url: String, statuses_url: String, languages_url: String, stargazers_url: String, contributors_url: String, subscribers_url: String, subscription_url: String, commits_url: String, git_commits_url: String, comments_url: String, issue_comment_url: String, contents_url: String, compare_url: String, merges_url: String, archive_url: String, downloads_url: String, issues_url: String, pulls_url: String, milestones_url: String, notifications_url: String, labels_url: String, releases_url: String, deployments_url: String, git_url: String, ssh_url: String, clone_url: String, svn_url: String, forks: i32, open_issues: i32, watchers: i32, mirror_url: Option<String>, has_issues: bool, has_projects: bool, has_pages: bool, has_wiki: bool, has_downloads: bool, archived: bool, disabled: bool, license: Option<models::NullableLicenseSimple>) -> RepoSearchResultItem {
202 RepoSearchResultItem {
203 id,
204 node_id,
205 name,
206 full_name,
207 owner: owner.map(Box::new),
208 private,
209 html_url,
210 description,
211 fork,
212 url,
213 created_at,
214 updated_at,
215 pushed_at,
216 homepage,
217 size,
218 stargazers_count,
219 watchers_count,
220 language,
221 forks_count,
222 open_issues_count,
223 master_branch: None,
224 default_branch,
225 score,
226 forks_url,
227 keys_url,
228 collaborators_url,
229 teams_url,
230 hooks_url,
231 issue_events_url,
232 events_url,
233 assignees_url,
234 branches_url,
235 tags_url,
236 blobs_url,
237 git_tags_url,
238 git_refs_url,
239 trees_url,
240 statuses_url,
241 languages_url,
242 stargazers_url,
243 contributors_url,
244 subscribers_url,
245 subscription_url,
246 commits_url,
247 git_commits_url,
248 comments_url,
249 issue_comment_url,
250 contents_url,
251 compare_url,
252 merges_url,
253 archive_url,
254 downloads_url,
255 issues_url,
256 pulls_url,
257 milestones_url,
258 notifications_url,
259 labels_url,
260 releases_url,
261 deployments_url,
262 git_url,
263 ssh_url,
264 clone_url,
265 svn_url,
266 forks,
267 open_issues,
268 watchers,
269 topics: None,
270 mirror_url,
271 has_issues,
272 has_projects,
273 has_pages,
274 has_wiki,
275 has_downloads,
276 has_discussions: None,
277 archived,
278 disabled,
279 visibility: None,
280 license: license.map(Box::new),
281 permissions: None,
282 text_matches: None,
283 temp_clone_token: None,
284 allow_merge_commit: None,
285 allow_squash_merge: None,
286 allow_rebase_merge: None,
287 allow_auto_merge: None,
288 delete_branch_on_merge: None,
289 allow_forking: None,
290 is_template: None,
291 web_commit_signoff_required: None,
292 }
293 }
294}
295