/ src / interface / src / unit.rs
unit.rs
 1  use candid::CandidType;
 2  use serde::{Deserialize, Serialize};
 3  use std::fmt;
 4  
 5  pub type Price = f64;
 6  
 7  #[derive(
 8      CandidType, Clone, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Debug, Hash, Copy,
 9  )]
10  pub enum Currency {
11      USD,
12      CNY,
13      JPY,
14      EUR,
15      GBP,
16      BTC,
17      ETH,
18      ICP,
19      USDT,
20      USDC,
21      FLOS,
22  }
23  
24  impl fmt::Display for Currency {
25      fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
26          write!(
27              f,
28              "{}",
29              match self {
30                  Currency::USD => "USD",
31                  Currency::CNY => "CNY",
32                  Currency::JPY => "JPY",
33                  Currency::EUR => "EUR",
34                  Currency::GBP => "GBP",
35                  Currency::BTC => "BTC",
36                  Currency::ETH => "ETH",
37                  Currency::ICP => "ICP",
38                  Currency::USDT => "USDT",
39                  Currency::USDC => "USDC",
40                  Currency::FLOS => "FLOS",
41              }
42          )
43      }
44  }