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
//! Multi-session management and selection.
//!
//! This module provides functionality for managing multiple terminal sessions
//! simultaneously and performing operations across them, such as:
//!
//! - Waiting for any session to match a pattern (`expect_any`)
//! - Waiting for all sessions to match patterns (`expect_all`)
//! - Sending to multiple sessions in parallel
//! - Per-session pattern selection
//!
//! # Example
//!
//! ```ignore
//! use rust_expect::multi::MultiSessionManager;
//!
//! #[tokio::main]
//! async fn main() -> Result<(), rust_expect::ExpectError> {
//! let mut manager = MultiSessionManager::new();
//!
//! // Add sessions (assuming you have Session instances)
//! // let id1 = manager.add(session1, "server1");
//! // let id2 = manager.add(session2, "server2");
//!
//! // Wait for any to match
//! // let result = manager.expect_any("prompt>").await?;
//!
//! Ok(())
//! }
//! ```
pub use ;
/// Session identifier type for multi-session operations.
/// This is distinct from `types::SessionId` which is a UUID-based identifier.
pub use SessionId as MultiSessionId;
pub use ;