Expand description
Shared argument types and groups for the BLZ CLI.
This module provides reusable argument definitions that can be composed
across multiple commands using clap’s #[command(flatten)] attribute.
§Design Philosophy
Rather than duplicating argument definitions across commands, shared argument groups ensure:
- Consistent flag names and help text
- Reduced code duplication
- Easier maintenance and updates
§Available Types
§Core Types
Verbosity- Output verbosity level (quiet/normal/verbose/debug)
§Argument Groups
PaginationArgs- Limit and offset for result paginationContextArgs- Context lines for content retrieval (grep-style)OutputArgs- Format selection with TTY auto-detection
§Examples
ⓘ
use blz_cli::args::{ContextArgs, OutputArgs, PaginationArgs, Verbosity};
use clap::{Args, Parser};
#[derive(Parser)]
struct SearchCommand {
/// Search query
query: String,
#[command(flatten)]
pagination: PaginationArgs,
#[command(flatten)]
context: ContextArgs,
#[command(flatten)]
output: OutputArgs,
}Structs§
- Context
Args - Shared context arguments for commands that retrieve content.
- Output
Args - Shared output format arguments for commands that produce formatted output.
- Pagination
Args - Shared pagination arguments for commands that support limiting results.
Enums§
- Context
Mode - Context mode for result expansion.
- Output
Format - Output format for CLI results.
- Verbosity
- Verbosity level for CLI output.