首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >proc-使用required_unless和conflicts_with进行结构测试时的宏死机

proc-使用required_unless和conflicts_with进行结构测试时的宏死机
EN

Stack Overflow用户
提问于 2018-08-08 23:56:28
回答 1查看 315关注 0票数 2

我希望有两个相互冲突的选项,但其中一个必须是必需的:

代码语言:javascript
复制
#[macro_use]
extern crate structopt;

use structopt::StructOpt;

#[derive(StructOpt)]
struct Opt {
    #[structopt(
        long = "foo",
        required_unless = "bar",
        conflicts_with = "bar",
    )]
    foo: Option<String>,
    #[structopt(
        long = "bar",
        required_unless = "foo"),
    ]
    bar: Option<String>,
}

fn main() {
    let args = Opt::from_args();
    println!("{:?}", args.foo);
    println!("{:?}", args.bar);
}

以下是编译器(v1.28.0)的抱怨之处:

代码语言:javascript
复制
error: proc-macro derive panicked
 --> src/main.rs:6:10
  |
6 | #[derive(StructOpt)]
  |          ^^^^^^^^^
  |
  = help: message: invalid structopt syntax: attr
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-09 01:02:22

末尾带有额外,#[stuff(...),]不是有效的属性语法。如果你纠正了这个拼写错误,你的代码就能正常工作。

代码语言:javascript
复制
#[structopt(
    long = "bar",
    required_unless = "foo",    // no `)` on this line.
)]                              // put `)` on this line, no `,` after it
bar: Option<String>,
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51750975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档