nautilus_tardis/python/
enums.rs1use pyo3::prelude::*;
17use strum::IntoEnumIterator;
18
19use crate::enums::TardisExchange;
20
21#[must_use]
22#[pyfunction(name = "tardis_exchanges")]
23pub fn py_tardis_exchanges() -> Vec<String> {
24 TardisExchange::iter().map(|e| e.to_string()).collect()
25}
26
27#[must_use]
28#[pyfunction(name = "tardis_exchange_from_venue_str")]
29pub fn py_tardis_exchange_from_venue_str(venue_str: &str) -> Vec<String> {
30 TardisExchange::from_venue_str(venue_str)
31 .iter()
32 .map(ToString::to_string)
33 .collect()
34}
35
36#[must_use]
37#[pyfunction(name = "tardis_exchange_to_venue_str")]
38pub fn py_tardis_exchange_to_venue_str(exchange_str: &str) -> String {
39 match exchange_str.parse::<TardisExchange>() {
40 Ok(exchange) => exchange.as_venue_str().to_string(),
41 Err(_) => String::new(),
42 }
43}
44
45#[must_use]
46#[pyfunction(name = "tardis_exchange_is_option_exchange")]
47pub fn py_tardis_exchange_is_option_exchange(exchange_str: &str) -> bool {
48 match exchange_str.parse::<TardisExchange>() {
49 Ok(exchange) => exchange.is_option_exchange(),
50 Err(_) => false,
51 }
52}