mod websocket; use crate::{ config::{Config, ALPACA_WEBSOCKET_URL}, types::alpaca, }; use futures_util::StreamExt; use std::sync::Arc; use tokio::spawn; use tokio_tungstenite::connect_async; pub async fn run(config: Arc) { let (websocket, _) = connect_async(&*ALPACA_WEBSOCKET_URL).await.unwrap(); let (mut websocket_sink, mut websocket_stream) = websocket.split(); alpaca::websocket::trading::authenticate(&config, &mut websocket_sink, &mut websocket_stream) .await; alpaca::websocket::trading::subscribe(&mut websocket_sink, &mut websocket_stream).await; spawn(websocket::run(config, websocket_stream, websocket_sink)); }