Skip to main content

parallel_disk_usage/
lib.rs

1//! The library crate for `pdu`.
2//!
3//! The things you are most interested in are likely [`fs_tree_builder::FsTreeBuilder`],
4//! [`tree_builder::TreeBuilder`], [`data_tree::DataTree`], or [`visualizer::Visualizer`].
5
6#![deny(warnings)]
7#![cfg_attr(dylint_lib = "perfectionist", feature(register_tool))]
8#![cfg_attr(dylint_lib = "perfectionist", register_tool(perfectionist))]
9
10#[cfg(feature = "json")]
11pub use serde;
12#[cfg(feature = "json")]
13pub use serde_json;
14
15#[cfg(feature = "cli")]
16pub mod app;
17#[cfg(feature = "cli")]
18pub mod args;
19#[cfg(feature = "cli")]
20pub mod man_page;
21#[cfg(feature = "cli")]
22pub mod runtime_error;
23#[cfg(feature = "cli")]
24pub mod usage_md;
25
26/// The main program.
27#[cfg(feature = "cli")]
28pub fn main() -> std::process::ExitCode {
29    if let Err(error) = app::App::from_env().run() {
30        eprintln!("[error] {error}");
31        return error.code();
32    }
33    std::process::ExitCode::SUCCESS
34}
35
36#[cfg(feature = "cli")]
37pub use clap;
38#[cfg(feature = "cli")]
39pub use clap_complete;
40#[cfg(feature = "cli")]
41pub use clap_utilities;
42
43pub mod bytes_format;
44pub mod data_tree;
45pub mod device;
46pub mod fs_tree_builder;
47pub mod get_size;
48pub mod hardlink;
49pub mod inode;
50pub mod json_data;
51pub mod os_string_display;
52pub mod reporter;
53pub mod size;
54pub mod status_board;
55pub mod tree_builder;
56pub mod visualizer;
57
58pub use zero_copy_pads;