#1537·clap

我怎么处理这案子 需要任何团体

作者: oblique创建于 2019年8月28日更新于 2026年8月28日
标签C-enhancementA-validators:money_with_wings: $20S-waiting-on-design

我有一个特别的旗帜,当它被设定的时候, 我希望总是两个团体之一匹配。 这面特殊旗帜永远不应该单独通过.

更清楚地说,我创造了一个简单的例子,说明我想实现的目标:

zz
使用clap::{App,Arg,ArgGroup};

fn 主( ) {
让 mut app = App: new ("我的应用程序")
.arg(arg: 有 name ("Special"). long ("Special")).
.arg( arg: 有 name ("opt- a1")). long ("opt- a1").
.arg(Arg: 有 name ("opt-a2")). long ("opt-a2").
.arg( arg: 有 name ("opt- b1")). long ("opt- b1").
.arg(Arg: 有 name ("opt-b2"). ) 长 ("opt-b2").
. group( 组合)
argGroup: 有 name("特殊和选择a")
.args(并["opt-a1","opt-a2").
.requires all(并[" special","opt-a1","opt-a2").
. 与("特殊和选择b")发生冲突
复数( 真)
需要(虚假),
(中文(简体) ).
. group( 组合)
argGroup: 有 name ("特殊和选择b")
.args(并["opt-b1","opt-b2").
.requires all(并[" special","opt-b1","opt-b2").
. 与(“特殊和选择a”)发生冲突
复数( 真)
需要(虚假),
(三)

允许有效   cases = vec ! [
韦克!
vec!["我的苹果","-特别","-opt-a1","-opt-a2"],".
vec! ["我的苹果","-特别","-opt-b1","-opt-b2"],,
; ; ;

让无效的  cases = vec ! [
vec! ["我的应用程序","-opt-a1","-opt-a2"],,
["我的应用","-opt-b1","-opt-b2"],".
维克!
["我的苹果","-特别","-opt-a1"],
["我的苹果","-特别","-opt-b1"],
vec! ["我的苹果","-特别","-opt-a1","-opt-a2","-opt-b1"]],,
vec! ["我的苹果","-特别","-opt-b1","-opt-b2","-opt-a1"]],,
vec! ["我的苹果","-特别","-opt-a1","-opt-a2","-opt-b1","-opt-b2"]],,,
; ; ;

用于 x 在有效的  cases {
profile ! (app. get  matches  from  safe borrow (x).is ok ()) ); ; 操作程序
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

无效  cases { 对于 x
profile ! (app. get  matches  from  safe  borrow (x).is err ()) ); ; 操作系统
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?

我无法处理的案件是``我的应用程序'、-特别''。 当然,我可以用现在'来解决这个问题,但我很想知道是否有通过团体解决问题的办法。 也许这是需要`要求'的任何 ' 的有效案例.