coingecko 1.1.3

Rust library for the CoinGecko V3 API
Documentation
#![allow(missing_docs)]
use serde::{Deserialize, Serialize};
use serde_json::Value;

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct Localization {
    pub en: Option<String>,
    pub de: Option<String>,
    pub es: Option<String>,
    pub fr: Option<String>,
    pub it: Option<String>,
    pub pl: Option<String>,
    pub ro: Option<String>,
    pub hu: Option<String>,
    pub nl: Option<String>,
    pub pt: Option<String>,
    pub sv: Option<String>,
    pub vi: Option<String>,
    pub tr: Option<String>,
    pub ru: Option<String>,
    pub ja: Option<String>,
    pub zh: Option<String>,
    #[serde(rename = "zh-tw")]
    pub zh_tw: Option<String>,
    pub ko: Option<String>,
    pub ar: Option<String>,
    pub th: Option<String>,
    pub id: Option<String>,
}

#[derive(Serialize, Deserialize, Default, Debug, Clone)]
pub struct Image {
    pub thumb: Option<String>,
    pub small: Option<String>,
    pub large: Option<String>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct CurrentPrice {
    pub aed: Option<f64>,
    pub ars: Option<f64>,
    pub aud: Option<f64>,
    pub bch: Option<f64>,
    pub bdt: Option<f64>,
    pub bhd: Option<f64>,
    pub bmd: Option<f64>,
    pub bnb: Option<f64>,
    pub brl: Option<f64>,
    pub btc: Option<f64>,
    pub cad: Option<f64>,
    pub chf: Option<f64>,
    pub clp: Option<f64>,
    pub cny: Option<f64>,
    pub czk: Option<f64>,
    pub dkk: Option<f64>,
    pub dot: Option<f64>,
    pub eos: Option<f64>,
    pub eth: Option<f64>,
    pub eur: Option<f64>,
    pub gbp: Option<f64>,
    pub hkd: Option<f64>,
    pub huf: Option<f64>,
    pub idr: Option<f64>,
    pub ils: Option<f64>,
    pub inr: Option<f64>,
    pub jpy: Option<f64>,
    pub krw: Option<f64>,
    pub kwd: Option<f64>,
    pub lkr: Option<f64>,
    pub ltc: Option<f64>,
    pub mmk: Option<f64>,
    pub mxn: Option<f64>,
    pub myr: Option<f64>,
    pub ngn: Option<f64>,
    pub nok: Option<f64>,
    pub nzd: Option<f64>,
    pub php: Option<f64>,
    pub pkr: Option<f64>,
    pub pln: Option<f64>,
    pub rub: Option<f64>,
    pub sar: Option<f64>,
    pub sek: Option<f64>,
    pub sgd: Option<f64>,
    pub thb: Option<f64>,
    #[serde(rename = "try")]
    pub try_field: Option<f64>,
    pub twd: Option<f64>,
    pub uah: Option<f64>,
    pub usd: Option<f64>,
    pub vef: Option<f64>,
    pub vnd: Option<f64>,
    pub xag: Option<f64>,
    pub xau: Option<f64>,
    pub xdr: Option<f64>,
    pub xlm: Option<f64>,
    pub xrp: Option<f64>,
    pub yfi: Option<f64>,
    pub zar: Option<f64>,
    pub bits: Option<f64>,
    pub link: Option<f64>,
    pub sats: Option<f64>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct MarketCap {
    pub aed: Option<f64>,
    pub ars: Option<f64>,
    pub aud: Option<f64>,
    pub bch: Option<f64>,
    pub bdt: Option<f64>,
    pub bhd: Option<f64>,
    pub bmd: Option<f64>,
    pub bnb: Option<f64>,
    pub brl: Option<f64>,
    pub btc: Option<f64>,
    pub cad: Option<f64>,
    pub chf: Option<f64>,
    pub clp: Option<f64>,
    pub cny: Option<f64>,
    pub czk: Option<f64>,
    pub dkk: Option<f64>,
    pub dot: Option<f64>,
    pub eos: Option<f64>,
    pub eth: Option<f64>,
    pub eur: Option<f64>,
    pub gbp: Option<f64>,
    pub hkd: Option<f64>,
    pub huf: Option<f64>,
    pub idr: Option<f64>,
    pub ils: Option<f64>,
    pub inr: Option<f64>,
    pub jpy: Option<f64>,
    pub krw: Option<f64>,
    pub kwd: Option<f64>,
    pub lkr: Option<f64>,
    pub ltc: Option<f64>,
    pub mmk: Option<f64>,
    pub mxn: Option<f64>,
    pub myr: Option<f64>,
    pub ngn: Option<f64>,
    pub nok: Option<f64>,
    pub nzd: Option<f64>,
    pub php: Option<f64>,
    pub pkr: Option<f64>,
    pub pln: Option<f64>,
    pub rub: Option<f64>,
    pub sar: Option<f64>,
    pub sek: Option<f64>,
    pub sgd: Option<f64>,
    pub thb: Option<f64>,
    #[serde(rename = "try")]
    pub try_field: Option<f64>,
    pub twd: Option<f64>,
    pub uah: Option<f64>,
    pub usd: Option<f64>,
    pub vef: Option<f64>,
    pub vnd: Option<f64>,
    pub xag: Option<f64>,
    pub xau: Option<f64>,
    pub xdr: Option<f64>,
    pub xlm: Option<f64>,
    pub xrp: Option<f64>,
    pub yfi: Option<f64>,
    pub zar: Option<f64>,
    pub bits: Option<f64>,
    pub link: Option<f64>,
    pub sats: Option<f64>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct TotalVolume {
    pub aed: Option<f64>,
    pub ars: Option<f64>,
    pub aud: Option<f64>,
    pub bch: Option<f64>,
    pub bdt: Option<f64>,
    pub bhd: Option<f64>,
    pub bmd: Option<f64>,
    pub bnb: Option<f64>,
    pub brl: Option<f64>,
    pub btc: Option<f64>,
    pub cad: Option<f64>,
    pub chf: Option<f64>,
    pub clp: Option<f64>,
    pub cny: Option<f64>,
    pub czk: Option<f64>,
    pub dkk: Option<f64>,
    pub dot: Option<f64>,
    pub eos: Option<f64>,
    pub eth: Option<f64>,
    pub eur: Option<f64>,
    pub gbp: Option<f64>,
    pub hkd: Option<f64>,
    pub huf: Option<f64>,
    pub idr: Option<f64>,
    pub ils: Option<f64>,
    pub inr: Option<f64>,
    pub jpy: Option<f64>,
    pub krw: Option<f64>,
    pub kwd: Option<f64>,
    pub lkr: Option<f64>,
    pub ltc: Option<f64>,
    pub mmk: Option<f64>,
    pub mxn: Option<f64>,
    pub myr: Option<f64>,
    pub ngn: Option<f64>,
    pub nok: Option<f64>,
    pub nzd: Option<f64>,
    pub php: Option<f64>,
    pub pkr: Option<f64>,
    pub pln: Option<f64>,
    pub rub: Option<f64>,
    pub sar: Option<f64>,
    pub sek: Option<f64>,
    pub sgd: Option<f64>,
    pub thb: Option<f64>,
    #[serde(rename = "try")]
    pub try_field: Option<f64>,
    pub twd: Option<f64>,
    pub uah: Option<f64>,
    pub usd: Option<f64>,
    pub vef: Option<f64>,
    pub vnd: Option<f64>,
    pub xag: Option<f64>,
    pub xau: Option<f64>,
    pub xdr: Option<f64>,
    pub xlm: Option<f64>,
    pub xrp: Option<f64>,
    pub yfi: Option<f64>,
    pub zar: Option<f64>,
    pub bits: Option<f64>,
    pub link: Option<f64>,
    pub sats: Option<f64>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct CommunityData {
    pub facebook_likes: Option<f64>,
    pub twitter_followers: Option<f64>,
    #[serde(rename = "reddit_average_posts_48h")]
    pub reddit_average_posts48_h: Option<f64>,
    #[serde(rename = "reddit_average_comments_48h")]
    pub reddit_average_comments48_h: Option<f64>,
    pub reddit_subscribers: Option<f64>,
    #[serde(rename = "reddit_accounts_active_48h")]
    pub reddit_accounts_active48_h: Option<Value>,
    pub telegram_channel_user_count: Option<Value>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct DeveloperData {
    pub forks: Option<f64>,
    pub stars: Option<f64>,
    pub subscribers: Option<f64>,
    pub total_issues: Option<f64>,
    pub closed_issues: Option<f64>,
    pub pull_requests_merged: Option<f64>,
    pub pull_request_contributors: Option<f64>,
    #[serde(rename = "code_additions_deletions_4_weeks")]
    pub code_additions_deletions4_weeks: CodeAdditionsDeletions4Weeks,
    #[serde(rename = "commit_count_4_weeks")]
    pub commit_count4_weeks: Option<f64>,
    #[serde(rename = "last_4_weeks_commit_activity_series")]
    pub last4_weeks_commit_activity_series: Option<Vec<f64>>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct PublicInterestStats {
    pub alexa_rank: Option<f64>,
    pub bing_matches: Option<f64>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct CodeAdditionsDeletions4Weeks {
    pub additions: Option<f64>,
    pub deletions: Option<f64>,
}

#[derive(Serialize, Deserialize, Default, Debug, Clone)]
pub struct Links {
    pub homepage: Vec<String>,
    pub blockchain_site: Vec<Value>,
    pub official_forum_url: Vec<String>,
    pub chat_url: Vec<Value>,
    pub announcement_url: Vec<Value>,
    pub twitter_screen_name: Value,
    pub facebook_username: Value,
    pub bitcointalk_thread_identifier: Value,
    pub telegram_channel_identifier: Value,
    pub subreddit_url: Value,
    pub repos_url: ReposUrl,
}

#[derive(Serialize, Deserialize, Default, Debug, Clone)]
pub struct ReposUrl {
    pub github: Vec<String>,
    pub bitbucket: Vec<Value>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct Tickers {
    pub name: String,
    pub tickers: Vec<Ticker>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct Ticker {
    pub base: String,
    pub target: String,
    pub market: Market,
    pub last: f64,
    pub volume: f64,
    pub converted_last: ConvertedLast,
    pub converted_volume: ConvertedVolume,
    pub cost_to_move_up_usd: Option<f64>,
    pub cost_to_move_down_usd: Option<f64>,
    pub trust_score: Option<String>,
    pub bid_ask_spread_percentage: Option<f64>,
    pub timestamp: Option<String>,
    pub last_traded_at: Option<String>,
    pub last_fetch_at: Option<String>,
    pub is_anomaly: bool,
    pub is_stale: bool,
    pub trade_url: Option<String>,
    pub token_info_url: Option<String>,
    pub coin_id: String,
    pub target_coin_id: Option<String>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct Market {
    pub name: String,
    pub identifier: String,
    pub has_trading_incentive: bool,
    pub logo: Option<String>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct ConvertedLast {
    pub btc: f64,
    pub eth: f64,
    pub usd: f64,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct ConvertedVolume {
    pub btc: f64,
    pub eth: f64,
    pub usd: f64,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct StatusUpdates {
    pub status_updates: Vec<StatusUpdate>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct StatusUpdate {
    pub description: Option<String>,
    pub category: Option<String>,
    pub created_at: Option<String>,
    pub user: Option<String>,
    pub user_title: Option<String>,
    pub pin: Option<bool>,
    pub project: Option<Project>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct Project {
    #[serde(rename = "type")]
    pub type_field: Option<String>,
    pub id: Option<String>,
    pub name: Option<String>,
    pub symbol: Option<String>,
    pub image: Image,
}