#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct User {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "type")]
pub r#type: RHashType,
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "login", skip_serializing_if = "Option::is_none")]
pub login: Option<String>,
#[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(rename = "modified_at", skip_serializing_if = "Option::is_none")]
pub modified_at: Option<String>,
#[serde(rename = "language", skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
#[serde(rename = "timezone", skip_serializing_if = "Option::is_none")]
pub timezone: Option<String>,
#[serde(rename = "space_amount", skip_serializing_if = "Option::is_none")]
pub space_amount: Option<i64>,
#[serde(rename = "space_used", skip_serializing_if = "Option::is_none")]
pub space_used: Option<i64>,
#[serde(rename = "max_upload_size", skip_serializing_if = "Option::is_none")]
pub max_upload_size: Option<i64>,
#[serde(rename = "status", skip_serializing_if = "Option::is_none")]
pub status: Option<Status>,
#[serde(rename = "job_title", skip_serializing_if = "Option::is_none")]
pub job_title: Option<String>,
#[serde(rename = "phone", skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(rename = "address", skip_serializing_if = "Option::is_none")]
pub address: Option<String>,
#[serde(rename = "avatar_url", skip_serializing_if = "Option::is_none")]
pub avatar_url: Option<String>,
}
impl User {
pub fn new(r#type: RHashType) -> User {
User {
id: None,
r#type,
name: None,
login: None,
created_at: None,
modified_at: None,
language: None,
timezone: None,
space_amount: None,
space_used: None,
max_upload_size: None,
status: None,
job_title: None,
phone: None,
address: None,
avatar_url: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum RHashType {
#[serde(rename = "user")]
User,
}
impl ToString for RHashType {
fn to_string(&self) -> String {
match self {
Self::User => String::from("user"),
}
}
}
impl Default for RHashType {
fn default() -> RHashType {
Self::User
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "active")]
Active,
#[serde(rename = "inactive")]
Inactive,
#[serde(rename = "cannot_delete_edit")]
CannotDeleteEdit,
#[serde(rename = "cannot_delete_edit_upload")]
CannotDeleteEditUpload,
}
impl Default for Status {
fn default() -> Status {
Self::Active
}
}