1use serde::{Deserialize, Serialize};
2use crate::utils::deserialize_string_or_int;
3
4#[derive(Debug, Clone, Deserialize, Serialize)]
5pub struct User {
6 #[serde(deserialize_with = "deserialize_string_or_int")]
7 pub id: String, pub login: String,
9 #[serde(default)]
10 pub name: Option<String>,
11 #[serde(default)]
12 pub email: Option<String>,
13 pub avatar_url: String,
14 pub html_url: String,
15 #[serde(default)]
16 pub bio: Option<String>,
17 #[serde(default)]
18 pub blog: Option<String>,
19 #[serde(default)]
20 pub location: Option<String>,
21 #[serde(default)]
22 pub followers: i32,
23 #[serde(default)]
24 pub following: i32,
25 #[serde(default)]
26 pub public_repos: i32,
27 #[serde(default)]
28 pub created_at: Option<String>,
29 #[serde(default)]
30 pub updated_at: Option<String>,
31}
32
33#[derive(Debug, Clone, Deserialize, Serialize)]
34pub struct SearchUserResult {
35 #[serde(deserialize_with = "deserialize_string_or_int")]
36 pub id: String, pub login: String,
38 #[serde(default)]
39 pub name: Option<String>,
40 pub avatar_url: String,
41 pub html_url: String,
42 #[serde(default)]
43 pub public_repos: i32,
44 #[serde(default)]
45 pub followers: i32,
46 #[serde(default)]
47 pub score: f64,
48}