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
83
//! Ergonomic async client for the simulator backtest WebSocket API.
//!
//! This wraps the `simulator-api` request/response protocol with helpers for common
//! workflows (create session, wait ready, continue/advance, close), while still allowing full
//! access to raw `BacktestRequest` / `BacktestResponse` when needed.
//!
//! ## Quickstart
//! ```no_run
//! use std::time::Duration;
//!
//! use simulator_client::{BacktestClient, Continue, CreateSession};
//!
//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
//! let client = BacktestClient::builder()
//! .url("ws://localhost:8900/backtest")
//! .api_key("local-dev-key")
//! .build();
//!
//! let mut session = client
//! .create_session(
//! CreateSession::builder()
//! .start_slot(100)
//! .slot_count(10)
//! .build(),
//! )
//! .await?;
//!
//! session.ensure_ready(Some(Duration::from_secs(30))).await?;
//! session
//! .continue_until_ready(
//! Continue::builder().advance_count(1).build(),
//! None,
//! |_| {},
//! )
//! .await?;
//! session.close(Some(Duration::from_secs(10))).await?;
//! # Ok(()) }
//! ```
//!
//! ## Lifecycle notes
//! - `BacktestClient::create_session` sends `CreateBacktestSession` and waits for
//! `SessionCreated`, buffering other responses until the session is ready.
//! - `BacktestSession::close` sends `CloseBacktestSession` and then closes the WebSocket.
//! - Dropping `BacktestSession` sends a best-effort WebSocket close frame if a Tokio runtime
//! is available. Call `close` explicitly to ensure server-side session cleanup.
//! - `connect_timeout` governs the initial handshake; `request_timeout` applies to send/receive
//! operations and can be overridden per call.
//! - For streaming workflows, use `BacktestSession::responses` (consumes the session) or
//! `next_event` to keep readiness state in sync while consuming responses.
pub use ;
pub use BacktestClient;
pub use ;
pub use ;
pub use report_agent_pnl;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;