1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/// Typed exchange code for screener queries.
#[non_exhaustive]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum ExchangeCode {
// ── US Equity ─────────────────────────────────────────────────────────
/// NYSE American / AMEX ("ASE")
Ase,
/// OTC Bulletin Board ("BTS")
Bts,
/// NASDAQ Capital Market ("NCM")
Ncm,
/// NASDAQ Global Market ("NGM")
Ngm,
/// NASDAQ Global Select Market ("NMS") — primary NASDAQ tier
Nms,
/// New York Stock Exchange ("NYQ")
Nyq,
/// NYSE Arca ("PCX")
Pcx,
/// OTC Pink Sheets / OTC Markets ("PNK")
Pnk,
// ── US Funds ──────────────────────────────────────────────────────────
/// NASDAQ — used for US mutual funds ("NAS")
Nas,
// ── International ─────────────────────────────────────────────────────
/// Australian Securities Exchange ("ASX")
Asx,
/// Bombay Stock Exchange ("BSE")
Bse,
/// Hong Kong Stock Exchange ("HKG")
Hkg,
/// Korea Exchange ("KRX")
Krx,
/// London Stock Exchange ("LSE")
Lse,
/// National Stock Exchange of India ("NSI")
Nsi,
/// Shanghai Stock Exchange ("SHH")
Shh,
/// Shenzhen Stock Exchange ("SHZ")
Shz,
/// Tokyo Stock Exchange ("TYO")
Tyo,
/// Toronto Stock Exchange ("TOR")
Tor,
/// XETRA / Deutsche Börse ("GER")
Ger,
}
impl ExchangeCode {
/// Returns the exchange code string used by Yahoo Finance.
pub fn as_str(self) -> &'static str {
match self {
ExchangeCode::Ase => "ASE",
ExchangeCode::Bts => "BTS",
ExchangeCode::Ncm => "NCM",
ExchangeCode::Ngm => "NGM",
ExchangeCode::Nms => "NMS",
ExchangeCode::Nyq => "NYQ",
ExchangeCode::Pcx => "PCX",
ExchangeCode::Pnk => "PNK",
ExchangeCode::Nas => "NAS",
ExchangeCode::Asx => "ASX",
ExchangeCode::Bse => "BSE",
ExchangeCode::Hkg => "HKG",
ExchangeCode::Krx => "KRX",
ExchangeCode::Lse => "LSE",
ExchangeCode::Nsi => "NSI",
ExchangeCode::Shh => "SHH",
ExchangeCode::Shz => "SHZ",
ExchangeCode::Tyo => "TYO",
ExchangeCode::Tor => "TOR",
ExchangeCode::Ger => "GER",
}
}
}
impl From<ExchangeCode> for String {
fn from(v: ExchangeCode) -> Self {
v.as_str().to_string()
}
}