Skip to main content

rust_expect/
prelude.rs

1//! Convenient re-exports for common rust-expect usage.
2//!
3//! This module provides a single import to access the most commonly used
4//! types and traits from rust-expect.
5//!
6//! # Example
7//!
8//! ```no_run
9//! use rust_expect::prelude::*;
10//!
11//! #[tokio::main]
12//! async fn main() -> Result<()> {
13//!     let mut session = Session::spawn("bash", &[]).await?;
14//!     session.expect("$").await?;
15//!     session.send_line("echo hello").await?;
16//!     session.expect("hello").await?;
17//!     Ok(())
18//! }
19//! ```
20
21// Core types
22// Backend types
23pub use crate::backend::{BackendType, PtyConfig, PtySpawner};
24pub use crate::config::{
25    BufferConfig, EncodingConfig, HumanTypingConfig, InteractConfig, LineEnding, LogFormat,
26    LoggingConfig, SessionConfig, TimeoutConfig,
27};
28// Encoding utilities
29pub use crate::encoding::{
30    DetectedEncoding, EncodedText, LineEndingStyle, decode_utf8_lossy, detect_encoding_from_env,
31    detect_line_ending, normalize_line_endings, strip_ansi,
32};
33// Error handling
34pub use crate::error::{ExpectError, Result, SpawnError};
35// Pattern types
36pub use crate::expect::{Matcher, Pattern, PatternManager, PatternSet, RingBuffer};
37// Send traits
38pub use crate::send::{AnsiSend, BasicSend, HumanTyper, Sender};
39// Session types
40pub use crate::session::{QuickSession, Session, SessionBuilder};
41// Sync wrapper
42pub use crate::sync::{SyncSession, block_on};
43// Common types
44pub use crate::types::{
45    ControlChar, Dimensions, ExpectResult, Match, ProcessExitStatus, SessionId, SessionState,
46};
47// Macros (re-exported from rust-expect-macros)
48pub use crate::{dialog, patterns, regex, timeout};