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 = "prompt-password")]
89pub use print::check_password_legality;
90#[cfg(feature = "print")]
91pub use print::{
92 ProgressBar, ZeroWhenDropString, init_print_options, log_init, progress_bar, progress_bar_lowp,
93 progress_unbounded, progress_unbounded_lowp, set_thread_print_name, term_width,
94 term_width_height, term_width_or_max,
95};
96
97pub mod lv;
99#[doc(inline)]
100pub use lv::{color_enabled, disable_print_time, disable_trace_hint, log_enabled};
101
102#[cfg(feature = "parse")]
104mod parse;
105#[cfg(feature = "parse")]
106pub use parse::*;
107#[cfg(feature = "parse")]
108pub use pistonite_cu_proc_macros::Parse;
109mod env_var;
110pub use env_var::*;
111
112mod atomic;
114pub use atomic::*;
115
116mod misc;
118pub use misc::*;
119
120pub use anyhow::{Context, Error, Ok, Result, anyhow as fmterr, bail, ensure};
122pub use log::{debug, error, info, trace, warn};
123pub use pistonite_cu_proc_macros::error_ctx;
124#[cfg(feature = "coroutine")]
125pub use tokio::{join, try_join};
126
127#[doc(hidden)]
128pub mod __priv {
129 #[cfg(feature = "print")]
130 pub use crate::print::{__print_with_level, __prompt, __prompt_yesno};
131 #[cfg(feature = "process")]
132 pub use crate::process::__ConfigFn;
133}
134
135pub mod lib {
137 #[cfg(feature = "cli")]
138 pub use clap;
139 #[cfg(feature = "derive")]
140 pub use derive_more;
141}
142
143pub mod pre {
145 pub use crate::Context as _;
146 #[cfg(feature = "parse")]
147 pub use crate::ParseTo as _;
148 #[cfg(feature = "fs")]
149 pub use crate::PathExtension as _;
150 #[cfg(feature = "fs")]
151 pub use crate::PathExtensionOwned as _;
152 #[cfg(feature = "process")]
153 pub use crate::Spawn as _;
154 #[cfg(feature = "json")]
155 pub use crate::json;
156 #[cfg(feature = "cli")]
157 pub use crate::lib::clap;
158 #[cfg(feature = "toml")]
159 pub use crate::toml;
160 #[cfg(feature = "yaml")]
161 pub use crate::yaml;
162 #[cfg(feature = "serde")]
163 pub use ::serde::{Deserialize, Serialize};
164
165 #[cfg(feature = "derive")]
166 pub use crate::lib::derive_more;
167 #[cfg(feature = "derive")]
168 pub use crate::lib::derive_more::{
169 AsMut, AsRef, Binary as DisplayBinary, Constructor, Debug as DebugCustom, Deref, DerefMut,
170 Display, From, Index, IndexMut, Into, IntoIterator, IsVariant, LowerExp as DisplayLowerExp,
171 LowerHex as DisplayLowerHex, Octal as DisplayOctal, Pointer as DisplayPointer,
172 UpperExp as DisplayUpperExp, UpperHex as DisplayUpperHex,
173 };
174
175 #[cfg(feature = "coroutine")]
176 pub use tokio::io::{AsyncBufReadExt as _, AsyncReadExt as _};
177}