xacli 0.2.1

A modern, developer-friendly CLI framework for Rust
Documentation
//! XaCLI - A modern, developer-friendly CLI framework for Rust
//!
//! This crate serves as a facade for the xacli ecosystem, re-exporting functionality
//! from:
//! - `xacli-core`: Core command parsing and execution
//! - `xacli-components`: Interactive terminal components (feature: `components`)
//! - `xacli-derive`: Derive macros for CLI apps (feature: `derive`)
//! - `xacli-testing`: Testing utilities (feature: `testing`)
//!
//! # Example
//!
//! ```rust,ignore
//! use xacli::{App, Command, Arg};
//!
//! App::new("myapp", "1.0.0")
//!     .command(
//!         Command::new("greet")
//!             .description("Greet someone")
//!             .run(Box::new(|ctx| {
//!                 println!("Hello!");
//!                 Ok(())
//!             }))
//!     )
//!     .execute()?;
//! ```
//!
//! # Features
//!
//! - `components`: Interactive terminal components (input, select, confirm, etc.)
//! - `derive`: Derive macros (`#[derive(App)]`, `#[derive(Command)]`)
//! - `testing`: Testing utilities for CLI apps
//! - `cli`: CLI binary tooling (includes `derive` and `testing`)
//!
//! # Installation
//!
//! As a library:
//! ```bash
//! cargo add xacli
//! cargo add xacli --features derive
//! cargo add xacli --features components
//! ```
//!
//! As a CLI tool:
//! ```bash
//! cargo install xacli --features cli
//! ```

// Re-export core functionality directly
pub use xacli_core::*;

// Re-export components module
#[cfg(feature = "components")]
pub mod components {
    //! Interactive terminal components
    pub use xacli_components::*;
}

// Re-export derive macros
#[cfg(feature = "derive")]
pub mod derive {
    //! Derive macros for CLI applications
    pub use xacli_derive::*;
}

// Re-export testing utilities
#[cfg(feature = "testing")]
pub mod testing {
    //! Testing utilities for CLI applications
    pub use xacli_testing::*;
}