predict_sdk/websocket/mod.rs
1//! WebSocket module for Predict.fun real-time data
2//!
3//! This module provides WebSocket connectivity for receiving real-time
4//! orderbook updates and other market data from Predict.fun.
5//!
6//! # Example
7//!
8//! ```ignore
9//! use predict_sdk::websocket::{PredictWebSocket, WsMessage};
10//!
11//! let ws = PredictWebSocket::new("wss://ws.predict.fun/ws".to_string());
12//! let mut stream = ws.connect().await?;
13//!
14//! // Subscribe to a market's orderbook
15//! ws.subscribe_orderbook(5614).await?;
16//!
17//! // Process incoming messages
18//! while let Some(msg) = stream.next().await {
19//! match msg? {
20//! WsMessage::PushMessage(push) if push.is_orderbook() => {
21//! let orderbook = parse_orderbook_update(&push)?;
22//! println!("Orderbook update: {:?}", orderbook);
23//! }
24//! _ => {}
25//! }
26//! }
27//! ```
28
29mod client;
30mod types;
31
32pub use client::{
33 parse_asset_price_update, parse_orderbook_update, parse_wallet_event, PredictWebSocket,
34 PredictWsStream,
35};
36pub use types::{
37 AssetPriceData, OrderbookData, PriceLevel, PushMessage, RawWsMessage, RequestResponse, WsError,
38 WsMessage, WsRequest,
39};