Skip to main content

Crate vld_clap

Crate vld_clap 

Source
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§

VldClapError
Error returned by vld-clap validation functions.

Enums§

ErrorSource
Source of the error.

Functions§

validate
Validate a parsed CLI struct that implements #[derive(Validate)] + Serialize.
validate_json
Validate a JSON value against any VldParse schema S.
validate_or_exit
Validate and exit on failure — convenience wrapper.
validate_with_schema
Validate a Serialize-able value against any VldParse schema S.