Skip to main content

tokio_process_tools/
lib.rs

1//!
2#![doc = include_str!("../README.md")]
3//!
4
5mod async_drop;
6mod error;
7mod output_stream;
8mod panic_on_drop;
9mod process;
10mod process_handle;
11#[cfg(test)]
12mod send_sync_proof;
13#[cfg(any(unix, windows))]
14mod terminate_on_drop;
15#[cfg(test)]
16mod test_support;
17
18pub use error::{
19    SpawnError, StreamConsumerError, StreamReadError, TerminationAction, TerminationAttemptError,
20    TerminationError, WaitError, WaitForCompletionOrTerminateResult, WaitForCompletionResult,
21    WaitForLineResult, WaitOrTerminateError, WaitWithOutputError,
22};
23pub use output_stream::backend::broadcast::{BroadcastOutputStream, BroadcastSubscription};
24pub use output_stream::backend::discard::DiscardedOutputStream;
25pub use output_stream::backend::single_subscriber::{
26    SingleSubscriberOutputStream, SingleSubscriberSubscription,
27};
28pub use output_stream::config::{
29    DEFAULT_MAX_BUFFERED_CHUNKS, DEFAULT_READ_CHUNK_SIZE, StreamConfig, StreamConfigBuilder,
30};
31pub use output_stream::consumer::{Consumer, ConsumerCancelOutcome, ConsumerError, Sink};
32pub use output_stream::event::{Chunk, StreamEvent};
33pub use output_stream::line::adapter::{AsyncLineVisitor, LineVisitor, ParseLines};
34pub use output_stream::line::options::{
35    DEFAULT_MAX_LINE_LENGTH, LineOverflowBehavior, LineParsingOptions,
36};
37pub use output_stream::line::parser::LineParser;
38pub use output_stream::num_bytes::{NumBytes, NumBytesExt};
39pub use output_stream::policy::{
40    Delivery, DeliveryGuarantee, LossyWithoutBackpressure, NoReplay, ReliableWithBackpressure,
41    Replay, ReplayEnabled, ReplayRetention,
42};
43pub use output_stream::visitor::{AsyncStreamVisitor, StreamVisitor};
44pub use output_stream::visitors;
45pub use output_stream::visitors::collect::{
46    CollectedBytes, CollectedLines, CollectionOverflowBehavior, LineCollectionOptions,
47    RawCollectionOptions,
48};
49pub use output_stream::visitors::write::{
50    LineWriteMode, SinkWriteError, SinkWriteErrorAction, SinkWriteErrorHandler, SinkWriteOperation,
51    WriteCollectionOptions,
52};
53pub use output_stream::{Consumable, Next, OutputStream, Subscribable, Subscription};
54pub use process::builder::Process;
55pub use process::name::{AutoName, AutoNameSettings, ProcessName};
56pub use process::stream_config::{
57    DiscardedStreamConfig, ProcessStreamBuilder, ProcessStreamConfig,
58};
59pub use process_handle::output_collection::ProcessOutput;
60pub use process_handle::output_collection::options::{
61    DEFAULT_OUTPUT_EOF_TIMEOUT, LineOutputOptions, RawOutputOptions,
62};
63#[cfg(any(unix, windows))]
64pub use process_handle::termination::{
65    GracefulShutdown, GracefulShutdownBuilder, UnixGracefulPhase, UnixGracefulShutdown,
66    UnixGracefulSignal, WindowsGracefulShutdown,
67};
68pub use process_handle::wait_builder::{WaitForCompletion, state as wait_builder_state};
69pub use process_handle::{ProcessHandle, RunningState, Stdin};
70#[cfg(any(unix, windows))]
71pub use terminate_on_drop::TerminateOnDrop;