#![doc(html_logo_url = "https://github.com/mingling-rs/mingling/raw/main/docs/res/icon3.png")]
#![doc(
html_favicon_url = "https://github.com/mingling-rs/mingling/raw/main/docs/res/favicon_small.png"
)]
#![deny(missing_docs)]
#![doc = include_str!("docs/lib.md")]
#![cfg_attr(docsrs, feature(doc_cfg))]
#[cfg(feature = "core")]
mod example_docs;
// Re-export Core lib
#[cfg(feature = "core")]
pub use mingling::*;
#[cfg(feature = "core")]
pub use mingling_core as mingling;
/// `Mingling` argument parser (Built-in)
#[cfg(feature = "parser")]
pub mod parser;
/// `Mingling` argument parser (Picker2)
#[cfg(feature = "picker")]
pub mod picker;
/// Functionality when combining `picker` and `comp`
#[cfg(all(feature = "picker", feature = "comp"))]
pub mod picker_comp;
mod constants;
/// Constants used throughout the Mingling framework.
pub mod consts {
pub use crate::constants::*;
}
/// Re-export of all macros from `mingling_macros`.
///
/// This module re-exports all macros provided by the `mingling_macros` crate,
/// including `dispatcher!`, `chain!`, `renderer!`,
/// `gen_program!`, `pack!`, and many others. These macros form the core
/// building blocks of the Mingling framework.
///
/// For detailed documentation, usage examples, and the full list of available
/// macros, please refer to the `mingling_macros` crate [documentation](https://docs.rs/mingling_macros/latest/mingling_macros/):
///
///
#[allow(unused_imports)]
#[cfg(feature = "macros")]
pub mod macros {
#[cfg(feature = "picker")]
pub use arg_picker::macros::*;
pub use mingling_macros::buffer;
pub use mingling_macros::chain;
#[cfg(feature = "extras")]
pub use mingling_macros::command;
#[cfg(feature = "comp")]
pub use mingling_macros::completion;
pub use mingling_macros::dispatcher;
#[cfg(feature = "clap")]
pub use mingling_macros::dispatcher_clap;
#[cfg(feature = "extras")]
pub use mingling_macros::empty_result;
#[cfg(feature = "extras")]
pub use mingling_macros::entry;
pub use mingling_macros::gen_program;
#[cfg(feature = "extras")]
pub use mingling_macros::group;
#[cfg(all(feature = "structural_renderer", feature = "extras"))]
pub use mingling_macros::group_structural;
pub use mingling_macros::help;
pub use mingling_macros::mlint;
pub use mingling_macros::node;
pub use mingling_macros::pack;
#[cfg(feature = "extras")]
pub use mingling_macros::pack_err;
#[cfg(all(feature = "structural_renderer", feature = "extras"))]
pub use mingling_macros::pack_err_structural;
#[cfg(feature = "structural_renderer")]
pub use mingling_macros::pack_structural;
#[cfg(feature = "comp")]
#[doc(hidden)]
pub use mingling_macros::program_comp_gen;
#[doc(hidden)]
pub use mingling_macros::program_fallback_gen;
#[doc(hidden)]
pub use mingling_macros::program_final_gen;
#[cfg(feature = "extras")]
pub use mingling_macros::program_setup;
pub use mingling_macros::r_append;
pub use mingling_macros::r_eprint;
pub use mingling_macros::r_eprintln;
pub use mingling_macros::r_print;
pub use mingling_macros::r_println;
#[doc(hidden)]
pub use mingling_macros::register_chain;
#[doc(hidden)]
pub use mingling_macros::register_dispatcher;
#[doc(hidden)]
pub use mingling_macros::register_help;
#[doc(hidden)]
pub use mingling_macros::register_renderer;
#[doc(hidden)]
pub use mingling_macros::register_type;
#[cfg(feature = "extras")]
pub use mingling_macros::render_route;
pub use mingling_macros::renderer;
#[cfg(feature = "extras")]
pub use mingling_macros::renderify;
#[cfg(feature = "extras")]
pub use mingling_macros::route;
#[cfg(feature = "extras")]
pub use mingling_macros::routeify;
#[cfg(feature = "comp")]
pub use mingling_macros::suggest;
#[cfg(feature = "comp")]
pub use mingling_macros::suggest_enum;
}
#[cfg(feature = "macros")]
pub use mingling_macros::EnumTag;
#[cfg(feature = "macros")]
pub use mingling_macros::Grouped;
#[cfg(feature = "structural_renderer")]
pub use mingling_macros::StructuralData;
#[doc = include_str!("docs/docsrs_examples.md")]
#[cfg(all(feature = "core", feature = "docs_rs"))]
#[allow(nonstandard_style)]
pub mod EXAMPLES {
pub use crate::example_docs::*;
}
#[cfg(feature = "core")]
mod features;
/// Module for checking which features are enabled at compile time.
///
/// Each constant re-exported from this module corresponds to a Cargo feature flag.
/// They can be used for conditional compilation or runtime branching based on
/// feature availability.
#[cfg(feature = "core")]
pub mod feature {
include!("./features.rs");
}
#[cfg(feature = "core")]
mod setups;
/// Setups provided by Mingling, which can extend command-line programs.
#[cfg(feature = "core")]
pub mod setup {
pub use crate::setups::*;
pub use mingling_core::setup::*;
}
/// Mutable global resources provided within Mingling
#[cfg(feature = "core")]
pub mod res;
/// The prelude module provides convenient re-exports of commonly used macros and traits.
///
/// Importing this module brings the essential components of Mingling into scope,
/// reducing boilerplate when defining commands, dispatchers, renderers, and the
/// program entry point.
///
/// # Examples
///
/// ```rust
/// use mingling::prelude::*;
/// ```
pub mod prelude {
#[cfg(feature = "core")]
pub use crate::Grouped;
#[cfg(feature = "core")]
pub use crate::RenderResult;
#[cfg(feature = "core")]
pub use crate::Routable;
#[cfg(feature = "macros")]
pub use crate::macros::chain;
#[cfg(all(feature = "extras", feature = "macros"))]
pub use crate::macros::command;
#[cfg(feature = "macros")]
pub use crate::macros::dispatcher;
#[cfg(all(feature = "extras", feature = "macros"))]
pub use crate::macros::empty_result;
#[cfg(feature = "macros")]
pub use crate::macros::gen_program;
#[cfg(feature = "macros")]
pub use crate::macros::pack;
#[cfg(all(feature = "extras", feature = "macros"))]
pub use crate::macros::pack_err;
#[cfg(feature = "macros")]
pub use crate::macros::renderer;
#[cfg(all(
feature = "macros",
feature = "structural_renderer",
feature = "extras"
))]
pub use mingling_macros::pack_err_structural;
#[cfg(all(feature = "macros", feature = "structural_renderer"))]
pub use mingling_macros::pack_structural;
pub use mingling_macros::r_append;
pub use mingling_macros::r_eprint;
pub use mingling_macros::r_eprintln;
pub use mingling_macros::r_print;
pub use mingling_macros::r_println;
#[cfg(all(feature = "macros", feature = "comp"))]
pub use crate::macros::completion;
#[cfg(feature = "parser")]
pub use crate::parser::AsPicker;
#[cfg(feature = "picker")]
pub use arg_picker::prelude::arg;
#[cfg(feature = "picker")]
pub use crate::picker::EntryPicker;
}