Skip to main content

request_current_time/
request_current_time.rs

1use truefix_twsapi_client::client::{ClientConfig, TwsApiClient};
2use truefix_twsapi_client::events::Event;
3
4#[tokio::main]
5async fn main() -> truefix_twsapi_client::error::TwsApiResult<()> {
6    let host = std::env::var("TWS_HOST").unwrap_or_else(|_| "127.0.0.1".to_owned());
7    let port = std::env::var("TWS_PORT")
8        .ok()
9        .and_then(|value| value.parse::<u16>().ok())
10        .unwrap_or(7497);
11    let client_id = std::env::var("TWS_CLIENT_ID")
12        .ok()
13        .and_then(|value| value.parse::<i32>().ok())
14        .unwrap_or(1001);
15
16    let mut client = TwsApiClient::connect(ClientConfig::new(host, port, client_id)).await?;
17    client.req_current_time().await?;
18
19    loop {
20        match client.read_event().await? {
21            Event::CurrentTime { time } => {
22                println!("{time}");
23                break;
24            }
25            Event::Error { code, message, .. } => {
26                eprintln!("TWS error {code}: {message}");
27                break;
28            }
29            _ => {}
30        }
31    }
32
33    Ok(())
34}