tokio_process_tools/
lib.rs1#![doc = include_str!("../README.md")]
3mod async_drop;
6mod error;
7mod output_stream;
8mod panic_on_drop;
9mod process;
10mod process_handle;
11#[cfg(test)]
12mod send_sync_proof;
13mod signal;
14#[cfg(any(unix, windows))]
15mod terminate_on_drop;
16#[cfg(test)]
17mod test_support;
18
19pub use error::{
20 SpawnError, StreamConsumerError, StreamReadError, TerminationAttemptError,
21 TerminationAttemptOperation, TerminationAttemptPhase, TerminationError, WaitError,
22 WaitForCompletionOrTerminateResult, WaitForCompletionResult, WaitForLineResult,
23 WaitOrTerminateError, WaitWithOutputError,
24};
25pub use output_stream::backend::broadcast::BroadcastOutputStream;
26pub use output_stream::backend::discard::DiscardedOutputStream;
27pub use output_stream::backend::single_subscriber::SingleSubscriberOutputStream;
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::{AsyncLineSink, LineAdapter, LineSink};
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 BestEffortDelivery, Delivery, DeliveryGuarantee, NoReplay, ReliableDelivery, Replay,
41 ReplayEnabled, ReplayRetention,
42};
43pub use output_stream::visitor::{AsyncStreamVisitor, StreamVisitor};
44pub use output_stream::visitors::collect::{
45 AsyncChunkCollector, AsyncLineCollector, CollectLineSink, CollectLineSinkAsync, CollectedBytes,
46 CollectedLines, CollectionOverflowBehavior, LineCollectionOptions, RawCollectionOptions,
47};
48pub use output_stream::visitors::inspect::{InspectLineSink, InspectLineSinkAsync};
49pub use output_stream::visitors::wait::WaitForLineSink;
50pub use output_stream::visitors::write::{
51 LineWriteMode, SinkWriteError, SinkWriteErrorAction, SinkWriteErrorHandler, SinkWriteOperation,
52 WriteCollectionOptions, WriteLineSink,
53};
54pub use output_stream::{Next, OutputStream, Subscription, TrySubscribable};
55pub use process::builder::Process;
56pub use process::name::{AutoName, AutoNameSettings, ProcessName};
57pub use process::stream_config::{
58 DiscardedStreamConfig, ProcessStreamBuilder, ProcessStreamConfig,
59};
60#[cfg(any(unix, windows))]
61pub use process_handle::WaitForCompletionOrTerminateOptions;
62pub use process_handle::output_collection::options::{LineOutputOptions, RawOutputOptions};
63pub use process_handle::output_collection::output::ProcessOutput;
64#[cfg(any(unix, windows))]
65pub use process_handle::termination::GracefulTimeouts;
66pub use process_handle::{ProcessHandle, RunningState, Stdin};
67#[cfg(any(unix, windows))]
68pub use terminate_on_drop::TerminateOnDrop;