问题标签 [clap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rust - 在短值中使用多个字母
我clap
用来解析参数。我想在参数中使用单个破折号 (-) 和多个字符,例如-Fmin 1
. 添加long("Fmin")
给了我,但有两个破折号(--)。
我知道一起使用单个破折号和单个字符是常态。但是在使用 short() 形式时,是否可以让 clap 使用多个字符?或者覆盖长格式,使其默认为单个破折号?
rust - 如何使用 Clap 为每个参数传递多个值?
有没有办法使用 clap 为每个参数传递多个值?
例如,如果我输入这个
或这个
我应该得到这个:
我知道该multiple(true)
选项,但我无法弄清楚如何像上面的示例中那样迭代多个值。
rust - 什么是有效字符以及如何在 clap.rs 参数中转义?
我想将某种形状或形成字典/地图/对象传递到我的 Clap 应用程序中。我可以预处理 dict 以将其转换为一些 csv 或其他内容。我的问题是我无法在 clap 文档中找到哪些字符对参数值有效以及如何转义它们。这与拍手无关,而是特定于外壳吗?
我可以通过类似的东西吗
myApp --dicty="a=1,b=3,qwe=yxc"
?
function - 如何在不使用命令行的情况下使用具有 CLAP 的 Rust crate 的功能?
新手在这里,如果这是一个愚蠢的问题,请道歉。
我想在我的代码中使用wagyu crate 的功能。这个 crate 具有命令行功能,所以我可以从命令行运行代码,但我似乎无法从我自己的代码中引用它。
我尝试了 2 个选项:
- 复制调用板条箱时预期的输入“拍手”(带参数的结构)
- 从 crate 中调用特定函数
对于第 2 项,我尝试过:
当我尝试构建此代码时,出现以下编译错误:
但我通过检查ethereum.rs文件中的代码知道有一个名为“from_mnemonic”的公共函数(在第 88 行定义)。
有谁知道为什么我不能调用这个函数?或者,是否有一种简单的方法可以在不使用命令行界面的情况下使用具有 clap 依赖项的 crate?
非常感谢。
rust - 无法移出共享引用后面的 *** (Clap)
我正在学习 rust 并想更好地了解这里发生的事情。我声明了以下内容:
然后在main.rs
我这样称呼它:
但我收到以下错误:
如何修复此错误?有没有更好的方法来处理这个?我正在尝试使用多个命令和选项在 rust 中构建一个命令行应用程序。我不想在一个文件中实现它。这里有什么好的模式可以遵循?
任何帮助都会很棒,
谢谢,曼森
design-patterns - 如何从命令行参数建模全局状态?
我正在解析参数,clap
但是在解析这些参数后我应该如何构建我的程序有点困惑:
我发现我需要一个来自命令行的参数——--verbose
例如标志——所以我把它拉出来,现在有一个模拟这个的布尔值,然后我最终将该布尔值传递给我的所有函数. 它永远不会改变。
然后我将在命令行中引入一个新参数,我希望多个函数也可以访问这些变量。因此,现在我将 clap 转换为.get_matches()
代表配置的结构,最后将该结构传递给我的所有函数。它永远不会改变。
我知道我们不想要全局可变状态。但是,是否有一个通用的习惯用法来处理仅在参数解析之后才发生变异的全局状态?此外,是否有关于如何处理verbose
标志之类的东西的指导?我是否需要明确地将其传递给每个函数?
我认为上述链接的问题不能回答这个问题,因为我不确定我需要全局可变状态。评论,
默认情况下确实存在不建议,但在用于像选项程序这样的良好用例时不会,这显然是可以的。– Stargateur 15 分钟前
更多的是问题。什么定义了“OK 层”?例如,如果 main 出现在 Tokio 二进制文件中,它是“OK Tier”吗?这样做有什么安全问题?为了存储启动状态并使其全局可用,编译器是否提供了其他一些方法来改变变量?
rust - clap 默认值 - 如何使用它
第一次玩 Rusts 拍板箱。而且我想知道如何在命令行未指定选项时使用命令行选项的默认值。
鉴于我default_value
在 yaml 文件中指定了 a (请参见下面的代码段),matches.value_of("VERBOSE")
如果命令行中没有给出其他值,我希望返回默认值。
相反,我得到:
线程“主”在“调用
Option::unwrap()
一个None
值”时惊慌失措,src/main.rs:18:6
我在谷歌上搜索了一段时间,但似乎没有人真正给出一个规范的例子来说明它应该如何工作。
在这里,我的微弱尝试......编译但无法正常工作(如果使用空命令行,则会出现恐慌)。
由于这显然不使用默认值,所以我的简单问题是:我该怎么做?
rust - 使用 clap 和 structopt 获取不同命令行选项的相对顺序
问题
我有一个带有不同选项的命令,这些选项的相对顺序对命令的语义很重要。例如,在 中command --config A --some-option --config-file B --random-option --config C --another-option --more-options --config-file D
,的相对顺序A, B, C, D
很重要,因为它会影响命令的含义。
如果我只是定义选项如下:
然后我会得到两个向量,configs = [A, C]
但是和config_files = [B, D]
中的元素之间的相对顺序已经丢失了。configs
config_files
想法
自定义解析函数
这个想法是提供一个自定义解析函数,并在解析每个选项时使用计数器记录索引。不幸的是,解析函数没有按照命令定义的原始顺序调用。
别名
我可以为该选项添加别名,如下所示:
这种方法有两个问题:
- 我需要一种方法来区分选项是否通过
--config
or--config-file
传递(仅通过检查值并不总是可以弄清楚值是如何传递的)。 - 我无法为可见别名提供简短选项。
相同的向量,多个选项
另一个想法是附加多个structopt
指令,以便两个选项使用相同的底层向量。不幸的是,它不起作用——structopt
只使用最后一个指令。就像是:
恢复订单
我可以尝试通过搜索解析值来恢复原始顺序。但这意味着我将不得不复制相当多的解析逻辑(例如,需要支持传递--config=X
, --config X
,需要处理X
作为另一个选项的输入出现等)。
我宁愿有办法可靠地获得原件,而不是丢失订单并尝试以可能脆弱的方式恢复它。
rust - 如何使用 Clap 解析文件名?
我懂了:
还有一个用法: ./binary-runner --noprofile -- tsp-arekbulski-*.rs
我怎样才能让这个拍手应用程序识别文件名?
错误:
rust - rust clap 如何指定命令行参数的类型
我正在使用 rust's clap 来调查命令行参数。是否可以在 clap 中指定将哪个作为命令行参数输入?type=int
是否可以像下面的 python 代码一样指定类型?
我正在寻找的是在定义它们的阶段指定命令行参数的类型,如上面的 python 代码。
我想用 clap 来做以下事情
因此,如果类型和变量匹配,我们希望它能够正常工作。
在这种情况下,我想立即引起恐慌并终止操作。我要找的是不使用诸如 之类的方法value_of
,而是在命令执行的时候判断命令行参数的类型,如果类型正确则执行,如果类型错误则立即panic。
我的理解是,在value_of_t
检索到数据之前,类型不会被确定。因此,我认为它与我正在寻找的不同。