1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct PrivateUser {
17 #[serde(rename = "login")]
18 pub login: String,
19 #[serde(rename = "id")]
20 pub id: i32,
21 #[serde(rename = "node_id")]
22 pub node_id: String,
23 #[serde(rename = "avatar_url")]
24 pub avatar_url: String,
25 #[serde(rename = "gravatar_id", deserialize_with = "Option::deserialize")]
26 pub gravatar_id: Option<String>,
27 #[serde(rename = "url")]
28 pub url: String,
29 #[serde(rename = "html_url")]
30 pub html_url: String,
31 #[serde(rename = "followers_url")]
32 pub followers_url: String,
33 #[serde(rename = "following_url")]
34 pub following_url: String,
35 #[serde(rename = "gists_url")]
36 pub gists_url: String,
37 #[serde(rename = "starred_url")]
38 pub starred_url: String,
39 #[serde(rename = "subscriptions_url")]
40 pub subscriptions_url: String,
41 #[serde(rename = "organizations_url")]
42 pub organizations_url: String,
43 #[serde(rename = "repos_url")]
44 pub repos_url: String,
45 #[serde(rename = "events_url")]
46 pub events_url: String,
47 #[serde(rename = "received_events_url")]
48 pub received_events_url: String,
49 #[serde(rename = "type")]
50 pub r#type: String,
51 #[serde(rename = "site_admin")]
52 pub site_admin: bool,
53 #[serde(rename = "name", deserialize_with = "Option::deserialize")]
54 pub name: Option<String>,
55 #[serde(rename = "company", deserialize_with = "Option::deserialize")]
56 pub company: Option<String>,
57 #[serde(rename = "blog", deserialize_with = "Option::deserialize")]
58 pub blog: Option<String>,
59 #[serde(rename = "location", deserialize_with = "Option::deserialize")]
60 pub location: Option<String>,
61 #[serde(rename = "email", deserialize_with = "Option::deserialize")]
62 pub email: Option<String>,
63 #[serde(rename = "hireable", deserialize_with = "Option::deserialize")]
64 pub hireable: Option<bool>,
65 #[serde(rename = "bio", deserialize_with = "Option::deserialize")]
66 pub bio: Option<String>,
67 #[serde(rename = "twitter_username", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
68 pub twitter_username: Option<Option<String>>,
69 #[serde(rename = "public_repos")]
70 pub public_repos: i32,
71 #[serde(rename = "public_gists")]
72 pub public_gists: i32,
73 #[serde(rename = "followers")]
74 pub followers: i32,
75 #[serde(rename = "following")]
76 pub following: i32,
77 #[serde(rename = "created_at")]
78 pub created_at: String,
79 #[serde(rename = "updated_at")]
80 pub updated_at: String,
81 #[serde(rename = "private_gists")]
82 pub private_gists: i32,
83 #[serde(rename = "total_private_repos")]
84 pub total_private_repos: i32,
85 #[serde(rename = "owned_private_repos")]
86 pub owned_private_repos: i32,
87 #[serde(rename = "disk_usage")]
88 pub disk_usage: i32,
89 #[serde(rename = "collaborators")]
90 pub collaborators: i32,
91 #[serde(rename = "two_factor_authentication")]
92 pub two_factor_authentication: bool,
93 #[serde(rename = "plan", skip_serializing_if = "Option::is_none")]
94 pub plan: Option<Box<models::PublicUserPlan>>,
95 #[serde(rename = "suspended_at", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
96 pub suspended_at: Option<Option<String>>,
97 #[serde(rename = "business_plus", skip_serializing_if = "Option::is_none")]
98 pub business_plus: Option<bool>,
99 #[serde(rename = "ldap_dn", skip_serializing_if = "Option::is_none")]
100 pub ldap_dn: Option<String>,
101}
102
103impl PrivateUser {
104 pub fn new(login: String, id: i32, node_id: String, avatar_url: String, gravatar_id: Option<String>, url: String, html_url: String, followers_url: String, following_url: String, gists_url: String, starred_url: String, subscriptions_url: String, organizations_url: String, repos_url: String, events_url: String, received_events_url: String, r#type: String, site_admin: bool, name: Option<String>, company: Option<String>, blog: Option<String>, location: Option<String>, email: Option<String>, hireable: Option<bool>, bio: Option<String>, public_repos: i32, public_gists: i32, followers: i32, following: i32, created_at: String, updated_at: String, private_gists: i32, total_private_repos: i32, owned_private_repos: i32, disk_usage: i32, collaborators: i32, two_factor_authentication: bool) -> PrivateUser {
106 PrivateUser {
107 login,
108 id,
109 node_id,
110 avatar_url,
111 gravatar_id,
112 url,
113 html_url,
114 followers_url,
115 following_url,
116 gists_url,
117 starred_url,
118 subscriptions_url,
119 organizations_url,
120 repos_url,
121 events_url,
122 received_events_url,
123 r#type,
124 site_admin,
125 name,
126 company,
127 blog,
128 location,
129 email,
130 hireable,
131 bio,
132 twitter_username: None,
133 public_repos,
134 public_gists,
135 followers,
136 following,
137 created_at,
138 updated_at,
139 private_gists,
140 total_private_repos,
141 owned_private_repos,
142 disk_usage,
143 collaborators,
144 two_factor_authentication,
145 plan: None,
146 suspended_at: None,
147 business_plus: None,
148 ldap_dn: None,
149 }
150 }
151}
152