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", ¶ms);
33 response
34}
35
36pub fn list() -> Response<serde_json::Value> {
37 let response = gecko::get_request("/coins/categories/list", "");
38 response
39}