Expand description
§vld-clap — Clap integration for vld
Validate CLI arguments after clap has parsed them, using
#[derive(Validate)] directly on the clap struct. No separate schema
needed.
§Quick Start
ⓘ
use clap::Parser;
use vld::Validate;
use vld_clap::prelude::*;
#[derive(Parser, Debug, serde::Serialize, Validate)]
struct Cli {
/// Admin email address
#[arg(long)]
#[vld(vld::string().email())]
email: String,
/// Server port
#[arg(long, default_value_t = 8080)]
#[vld(vld::number().int().min(1).max(65535))]
port: i64,
/// Application name
#[arg(long)]
#[vld(vld::string().min(2).max(50))]
name: String,
}
fn main() {
let cli = Cli::parse(); // clap's parse — no conflict
validate_or_exit(&cli);
println!("Valid! {:?}", cli);
}Modules§
- prelude
- Prelude — import everything you need.
Structs§
- VldClap
Error - Error returned by
vld-clapvalidation functions.
Enums§
- Error
Source - Source of the error.
Functions§
- validate
- Validate a parsed CLI struct that implements
#[derive(Validate)]+Serialize. - validate_
json - Validate a JSON value against any
VldParseschemaS. - validate_
or_ exit - Validate and exit on failure — convenience wrapper.
- validate_
with_ schema - Validate a
Serialize-able value against anyVldParseschemaS.