rust_gecko/
categories.rs

1use crate::gecko;
2use crate::types::Response;
3use serde_json;
4
5pub enum Order {
6    MarketCapDesc,
7    MarketCapAsc,
8    NameDesc,
9    NameAsc,
10    MarketCapChange24hDesc,
11    MarketCapChange24hAsc,
12}
13
14impl Order {
15    fn as_str(&self) -> &'static str {
16        match self {
17            Order::MarketCapDesc => "market_cap_desc",
18            Order::MarketCapAsc => "market_cap_asc",
19            Order::NameDesc => "name_desc",
20            Order::NameAsc => "name_asc",
21            Order::MarketCapChange24hDesc => "market_cap_change_24h_desc",
22            Order::MarketCapChange24hAsc => "market_cap_change_24h_asc",
23        }
24    }
25}
26
27pub fn get(order: Option<Order>) -> Response<serde_json::Value> {
28    let mut params = "?".to_string();
29    if !order.is_none() {
30        params.push_str(&["order", order.unwrap().as_str()].join("="));
31    }
32    let response = gecko::get_request("/coins/categories", &params);
33    response
34}
35
36pub fn list() -> Response<serde_json::Value> {
37    let response = gecko::get_request("/coins/categories/list", "");
38    response
39}