Crate rust_expect_macros

Crate rust_expect_macros 

Source
Expand description

rust-expect-macros: Procedural macros for rust-expect

This crate provides compile-time macros for the rust-expect terminal automation library:

  • patterns! - Define pattern sets for expect operations
  • regex! - Compile-time validated regex patterns
  • dialog! - Define interactive dialog scripts
  • timeout! - Parse timeout duration specifications

§Example: Pattern Matching

use rust_expect_macros::patterns;

let patterns = patterns! {
    "login:",
    "password:",
    regex(r"\$\s*$"),
};

§Example: Dialog Script

use rust_expect_macros::dialog;

let script = dialog! {
    expect "login:";
    sendln "admin";
    expect "password:";
    sendln "secret";
    expect_re r"\$\s*$"
};

§Example: Validated Regex

use rust_expect_macros::regex;

// Compile-time validated regex
let prompt = regex!(r"^\w+@\w+:\S+\$\s*$");

§Example: Human-Readable Timeout

use rust_expect_macros::timeout;

let duration = timeout!(5 s);
let long_timeout = timeout!(2 m + 30 s);

Macros§

dialog
Define an interactive dialog script.
patterns
Define a set of patterns for use with expect operations.
regex
Compile-time validated regex pattern.
timeout
Parse a human-readable timeout specification.