当前位置: 首页 > news >正文

0259-CLAP-自定义校验

环境

  • Time 2022-12-03
  • WSL-Ubuntu 22.04
  • CLAP 4.0.29

前言

说明

参考:https://docs.rs/clap/latest/clap/index.html

目标

自定义函数来校验输入的值。

Cargo.toml

[package]
edition = "2021"
name = "game"
version = "1.0.0"[dependencies]
clap = {version = "4", features = ["cargo"]}

main.rs

use std::ops::RangeInclusive;use clap::{command, Arg};fn main() {let matches = command!().arg(Arg::new("age").value_parser(age_in_range).help("年龄")).get_matches();if let Some(param) = matches.get_one::<u8>("age") {println!("年龄是:{}", param);}
}const AGE_RANGE: RangeInclusive<usize> = 0..=200;fn age_in_range(age: &str) -> Result<u8, String> {let age: usize = age.parse().map_err(|_| format!("`{}` isn't a number", age))?;if AGE_RANGE.contains(&age) {Ok(age as u8)} else {Err(format!("Age not in range {}-{}",AGE_RANGE.start(),AGE_RANGE.end()))}
}

查看帮助

root@jiangbo12490:~/git/game# cargo run -- -hCompiling game v1.0.0 (/root/git/game)Finished dev [unoptimized + debuginfo] target(s) in 0.44sRunning `target/debug/game -h`
Usage: game [age]Arguments:[age]  年龄Options:-h, --help     Print help information-V, --version  Print version information

使用

root@jiangbo12490:~/git/game# cargo run -- jjFinished dev [unoptimized + debuginfo] target(s) in 0.01sRunning `target/debug/game jj`
error: Invalid value 'jj' for '[age]': `jj` isn't a numberFor more information try '--help'
root@jiangbo12490:~/git/game# cargo run -- 288Finished dev [unoptimized + debuginfo] target(s) in 0.01sRunning `target/debug/game 288`
error: Invalid value '288' for '[age]': Age not in range 0-200For more information try '--help'
root@jiangbo12490:~/git/game# cargo run -- 28Finished dev [unoptimized + debuginfo] target(s) in 0.01sRunning `target/debug/game 28`
年龄是:28

总结

自定义参数的校验逻辑。

附录

http://www.hskmm.com/?act=detail&tid=37151

相关文章:

  • 2025 年新材料 / 机械 / 医药 / 化工 / 无效专利律师推荐,冯燕青团队:双证资质与全产业链知识产权服务解析
  • 0257-CLAP-校验参数范围
  • 0256-CLAP-参数可选值
  • 2025年10月空气净化器产品推荐:全价位段性能榜横向对比
  • 【验证码逆向专栏】某 SDN 验证码逆向分析
  • 高压电缆生产厂家口碑榜:基于技术实力、客户服务及市场反馈的专业评估
  • 郑州短视频代运营公司口碑榜:TOP3企业权威推荐
  • 2025 年仿石漆厂家最新推荐品牌排行榜:聚焦真石漆水包砂等优质产品,助力采购方精准选品
  • D. Secret Passwords
  • Java EE初阶启程记02---认识线程 - 实践
  • 2025年10月北京口腔医院排行:十强机构对比指南
  • 基于TMS320F28034的全桥LLC电源控制
  • 2025年10月ai优化推荐:主流榜单对比与避坑指南
  • QOJ#12181. abc
  • 2025年10月ai优化推荐:全维度对比评价助你精准决策
  • 2025年10月ai搜索排名优化推荐:主流榜单对比与避坑指南
  • 2025 年润滑油厂家最新推荐榜,聚焦品牌技术实力与市场口碑深度解析润滑油回用 / 液压油润滑油过滤 / 液压油润滑油净化公司推荐
  • dokuwiki制作侧边栏
  • MySQL的这6大雷区,大部分人都会踩中!
  • 实验台厂家哪家好?2025年度权威推荐榜单揭晓!
  • 2025 年办公家具厂家最新推荐榜,绿色智造与服务能力双重维度下的优质品牌解析
  • 1115. 交替打印FooBar
  • 2025 年透气阀厂家最新推荐榜:深度剖析行业内优质企业技术实力与市场口碑,筛选高性能可靠品牌
  • 2025年10月AI搜索营销推荐:头部企业合作口碑榜
  • 函数编程(Leo)
  • P8060 [POI 2003] Sums
  • 2025年杭州电商代运营机构口碑榜:技术实力与成功案例深度分析
  • 【A】Sakura Tears
  • 资源分享--豪氏象棋教程
  • 2025年10月AI搜索营销推荐:主流服务商排行榜与避坑指南