1#![cfg_attr(any(docsrs, feature = "nightly"), feature(doc_cfg))]
49
50#[cfg(feature = "process")]
51mod process;
52#[cfg(feature = "process")]
53pub use process::{Child, Command, CommandBuilder, Spawn, color_flag, color_flag_eq, pio};
54#[cfg(all(feature = "process", feature = "print"))]
55pub use process::{width_flag, width_flag_eq};
56
57#[cfg(feature = "fs")]
58pub mod bin;
59#[cfg(feature = "fs")]
60#[doc(inline)]
61pub use bin::which;
62
63#[cfg(feature = "fs")]
65pub mod fs;
66
67#[cfg(feature = "fs")]
69mod path;
70#[cfg(feature = "fs")]
71pub use path::{PathExtension, PathExtensionOwned};
72
73#[cfg(feature = "cli")]
74pub mod cli;
75#[cfg(feature = "cli")]
76pub use pistonite_cu_proc_macros::cli;
77
78#[cfg(feature = "coroutine")]
79mod async_;
80pub type BoxedFuture<T> = std::pin::Pin<Box<dyn Future<Output = T> + Send + 'static>>;
82#[cfg(feature = "coroutine")]
83pub mod co;
84
85#[cfg(feature = "print")]
87mod print;
88#[cfg(feature = "print")]
89pub use print::{
90 ProgressBar, init_print_options, log_init, progress_bar, progress_bar_lowp, progress_unbounded,
91 progress_unbounded_lowp, set_thread_print_name, term_width, term_width_height,
92 term_width_or_max,
93};
94
95pub mod lv;
97#[doc(inline)]
98pub use lv::{color_enabled, disable_print_time, disable_trace_hint, log_enabled};
99
100#[cfg(feature = "parse")]
102mod parse;
103#[cfg(feature = "parse")]
104pub use parse::*;
105#[cfg(feature = "parse")]
106pub use pistonite_cu_proc_macros::Parse;
107
108mod atomic;
110pub use atomic::*;
111
112mod misc;
114pub use misc::*;
115
116pub use anyhow::{Context, Error, Ok, Result, anyhow as fmterr, bail, ensure};
118pub use log::{debug, error, info, trace, warn};
119#[cfg(feature = "coroutine")]
120pub use tokio::{join, try_join};
121
122#[doc(hidden)]
123pub mod __priv {
124 #[cfg(feature = "print")]
125 pub use crate::print::{__print_with_level, __prompt, __prompt_yesno};
126 #[cfg(feature = "process")]
127 pub use crate::process::__ConfigFn;
128}
129
130pub mod lib {
132 #[cfg(feature = "cli")]
133 pub use clap;
134 #[cfg(feature = "derive")]
135 pub use derive_more;
136}
137
138pub mod pre {
140 pub use crate::Context as _;
141 #[cfg(feature = "parse")]
142 pub use crate::ParseTo as _;
143 #[cfg(feature = "fs")]
144 pub use crate::PathExtension as _;
145 #[cfg(feature = "fs")]
146 pub use crate::PathExtensionOwned as _;
147 #[cfg(feature = "process")]
148 pub use crate::Spawn as _;
149 #[cfg(feature = "json")]
150 pub use crate::json;
151 #[cfg(feature = "cli")]
152 pub use crate::lib::clap;
153 #[cfg(feature = "toml")]
154 pub use crate::toml;
155 #[cfg(feature = "yaml")]
156 pub use crate::yaml;
157 #[cfg(feature = "serde")]
158 pub use ::serde::{Deserialize, Serialize};
159
160 #[cfg(feature = "derive")]
161 pub use crate::lib::derive_more;
162 #[cfg(feature = "derive")]
163 pub use crate::lib::derive_more::{
164 AsMut, AsRef, Binary as DisplayBinary, Constructor, Debug as DebugCustom, Deref, DerefMut,
165 Display, From, Index, IndexMut, Into, IntoIterator, IsVariant, LowerExp as DisplayLowerExp,
166 LowerHex as DisplayLowerHex, Octal as DisplayOctal, Pointer as DisplayPointer,
167 UpperExp as DisplayUpperExp, UpperHex as DisplayUpperHex,
168 };
169
170 #[cfg(feature = "coroutine")]
171 pub use tokio::io::{AsyncBufReadExt as _, AsyncReadExt as _};
172}