openapi_github/models/
issue_search_result_item.rs

1/*
2 * GitHub's official OpenAPI spec + Octokit extension
3 *
4 * OpenAPI specs from https://github.com/github/rest-api-description with the 'x-octokit' extension required by the Octokit SDKs
5 *
6 * The version of the OpenAPI document: 16.6.0
7 * 
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// IssueSearchResultItem : Issue Search Result Item
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct IssueSearchResultItem {
17    #[serde(rename = "url")]
18    pub url: String,
19    #[serde(rename = "repository_url")]
20    pub repository_url: String,
21    #[serde(rename = "labels_url")]
22    pub labels_url: String,
23    #[serde(rename = "comments_url")]
24    pub comments_url: String,
25    #[serde(rename = "events_url")]
26    pub events_url: String,
27    #[serde(rename = "html_url")]
28    pub html_url: String,
29    #[serde(rename = "id")]
30    pub id: i64,
31    #[serde(rename = "node_id")]
32    pub node_id: String,
33    #[serde(rename = "number")]
34    pub number: i32,
35    #[serde(rename = "title")]
36    pub title: String,
37    #[serde(rename = "locked")]
38    pub locked: bool,
39    #[serde(rename = "active_lock_reason", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
40    pub active_lock_reason: Option<Option<String>>,
41    #[serde(rename = "assignees", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
42    pub assignees: Option<Option<Vec<models::SimpleUser>>>,
43    #[serde(rename = "user", deserialize_with = "Option::deserialize")]
44    pub user: Option<Box<models::NullableSimpleUser>>,
45    #[serde(rename = "labels")]
46    pub labels: Vec<models::IssueSearchResultItemLabelsInner>,
47    #[serde(rename = "state")]
48    pub state: String,
49    #[serde(rename = "state_reason", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
50    pub state_reason: Option<Option<String>>,
51    #[serde(rename = "assignee", deserialize_with = "Option::deserialize")]
52    pub assignee: Option<Box<models::NullableSimpleUser>>,
53    #[serde(rename = "milestone", deserialize_with = "Option::deserialize")]
54    pub milestone: Option<Box<models::NullableMilestone>>,
55    #[serde(rename = "comments")]
56    pub comments: i32,
57    #[serde(rename = "created_at")]
58    pub created_at: String,
59    #[serde(rename = "updated_at")]
60    pub updated_at: String,
61    #[serde(rename = "closed_at", deserialize_with = "Option::deserialize")]
62    pub closed_at: Option<String>,
63    #[serde(rename = "text_matches", skip_serializing_if = "Option::is_none")]
64    pub text_matches: Option<Vec<models::SearchResultTextMatchesInner>>,
65    #[serde(rename = "pull_request", skip_serializing_if = "Option::is_none")]
66    pub pull_request: Option<Box<models::IssuePullRequest>>,
67    #[serde(rename = "body", skip_serializing_if = "Option::is_none")]
68    pub body: Option<String>,
69    #[serde(rename = "score")]
70    pub score: f64,
71    #[serde(rename = "author_association")]
72    pub author_association: models::AuthorAssociation,
73    #[serde(rename = "draft", skip_serializing_if = "Option::is_none")]
74    pub draft: Option<bool>,
75    #[serde(rename = "repository", skip_serializing_if = "Option::is_none")]
76    pub repository: Option<Box<models::Repository>>,
77    #[serde(rename = "body_html", skip_serializing_if = "Option::is_none")]
78    pub body_html: Option<String>,
79    #[serde(rename = "body_text", skip_serializing_if = "Option::is_none")]
80    pub body_text: Option<String>,
81    #[serde(rename = "timeline_url", skip_serializing_if = "Option::is_none")]
82    pub timeline_url: Option<String>,
83    #[serde(rename = "performed_via_github_app", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
84    pub performed_via_github_app: Option<Option<Box<models::NullableIntegration>>>,
85    #[serde(rename = "reactions", skip_serializing_if = "Option::is_none")]
86    pub reactions: Option<Box<models::ReactionRollup>>,
87}
88
89impl IssueSearchResultItem {
90    /// Issue Search Result Item
91    pub fn new(url: String, repository_url: String, labels_url: String, comments_url: String, events_url: String, html_url: String, id: i64, node_id: String, number: i32, title: String, locked: bool, user: Option<models::NullableSimpleUser>, labels: Vec<models::IssueSearchResultItemLabelsInner>, state: String, assignee: Option<models::NullableSimpleUser>, milestone: Option<models::NullableMilestone>, comments: i32, created_at: String, updated_at: String, closed_at: Option<String>, score: f64, author_association: models::AuthorAssociation) -> IssueSearchResultItem {
92        IssueSearchResultItem {
93            url,
94            repository_url,
95            labels_url,
96            comments_url,
97            events_url,
98            html_url,
99            id,
100            node_id,
101            number,
102            title,
103            locked,
104            active_lock_reason: None,
105            assignees: None,
106            user: user.map(Box::new),
107            labels,
108            state,
109            state_reason: None,
110            assignee: assignee.map(Box::new),
111            milestone: milestone.map(Box::new),
112            comments,
113            created_at,
114            updated_at,
115            closed_at,
116            text_matches: None,
117            pull_request: None,
118            body: None,
119            score,
120            author_association,
121            draft: None,
122            repository: None,
123            body_html: None,
124            body_text: None,
125            timeline_url: None,
126            performed_via_github_app: None,
127            reactions: None,
128        }
129    }
130}
131