metaculus 0.4.0

API Client for Metaculus
Documentation
/*
 * Metaculus API
 *
 * Welcome to the unofficial Rust client for the Metaculus API
 *
 * The version of the OpenAPI document: 1.0
 * Contact: Benjamin Manns <opensource@benmanns.com>
 * Generated by: https://openapi-generator.tech
 */

#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct PatchedProject {
    #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
    pub id: Option<i32>,
    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
    pub url: Option<String>,
    #[serde(rename = "type_str", skip_serializing_if = "Option::is_none")]
    pub type_str: Option<String>,
    #[serde(rename = "score_type", skip_serializing_if = "Option::is_none")]
    pub score_type: Option<crate::models::ScoreTypeEnum>,
    #[serde(rename = "subtitle", skip_serializing_if = "Option::is_none")]
    pub subtitle: Option<String>,
    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
    pub r#type: Option<String>,
    #[serde(rename = "site_id", skip_serializing_if = "Option::is_none")]
    pub site_id: Option<i32>,
    #[serde(
        rename = "user_perms",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub user_perms: Option<Option<serde_json::Value>>,
    #[serde(
        rename = "question_user_perms",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub question_user_perms: Option<Option<serde_json::Value>>,
    #[serde(rename = "sign_up_fields", skip_serializing_if = "Option::is_none")]
    pub sign_up_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
    #[serde(
        rename = "tournament_close_date",
        skip_serializing_if = "Option::is_none"
    )]
    pub tournament_close_date: Option<String>,
    #[serde(
        rename = "tournament_start_date",
        skip_serializing_if = "Option::is_none"
    )]
    pub tournament_start_date: Option<String>,
    #[serde(rename = "prize_pool", skip_serializing_if = "Option::is_none")]
    pub prize_pool: Option<f64>,
    #[serde(rename = "config", skip_serializing_if = "Option::is_none")]
    pub config: Option<::std::collections::HashMap<String, serde_json::Value>>,
    #[serde(
        rename = "in_main_feed_by_default",
        skip_serializing_if = "Option::is_none"
    )]
    pub in_main_feed_by_default: Option<bool>,
    #[serde(rename = "public", skip_serializing_if = "Option::is_none")]
    pub public: Option<bool>,
    #[serde(rename = "is_opt_in", skip_serializing_if = "Option::is_none")]
    pub is_opt_in: Option<bool>,
}

impl Default for PatchedProject {
    fn default() -> Self {
        Self::new()
    }
}

impl PatchedProject {
    #[must_use]
    pub fn new() -> PatchedProject {
        PatchedProject {
            id: None,
            name: None,
            url: None,
            type_str: None,
            score_type: None,
            subtitle: None,
            description: None,
            r#type: None,
            site_id: None,
            user_perms: None,
            question_user_perms: None,
            sign_up_fields: None,
            tournament_close_date: None,
            tournament_start_date: None,
            prize_pool: None,
            config: None,
            in_main_feed_by_default: None,
            public: None,
            is_opt_in: None,
        }
    }
}