Module multi

Module multi 

Source
Expand description

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

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(())
}

Structs§

GroupBuilder
Builder for session groups.
GroupManager
Manager for multiple session groups.
GroupResult
Result of a group operation.
MultiSessionManager
Manager for multiple async sessions with select capabilities.
PatternSelector
Builder for creating pattern selectors with per-session patterns.
SelectResult
Result of a multi-session select operation.
SendResult
Result of a multi-session send operation.
SessionGroup
A group of sessions for parallel operations.

Enums§

ReadyType
Type of readiness event.

Type Aliases§

MultiSessionId
Session identifier type for multi-session operations. This is distinct from types::SessionId which is a UUID-based identifier. Unique identifier for a session within a multi-session manager.