在 Rust 中使用多个 use 语句只使用一个特征标志属性

问题描述 投票:0回答:2

Rust 中的多个 use 语句是否可以只使用一个特征标志属性? 像这样的东西:

#[cfg(feature = "my-flag")]
{
  use crypto::sha2::Sha256;
  use ethers::utils::keccak256;
}

注意: 编译器会针对上述内容抛出语法错误。

目前我必须为每个 use 语句使用一个标志属性,如下所示:

#[cfg(feature = "my-flag")]
use crypto::sha2::Sha256;
#[cfg(feature = "my-flag")]
use ethers::utils::keccak256;

这个可以缩短吗?

rust rust-cargo conditional-compilation
2个回答
2
投票

您可以将它们组合成一个

use
声明:

#[cfg(feature = "my-flag")]
use {crypto::sha2::Sha256, ethers::utils::keccak256};

1
投票

您可以使用

cfg-if

cfg_if::cfg_if! {
    if #[cfg(feature = "my-flag")] {
        use crypto::sha2::Sha256;
        use ethers::utils::keccak256;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.