是否可以对需要相同属性的项目进行分组?

时间:2018-08-22 08:42:33

标签: rust

这是一个样式问题,但仍然很有趣。是否可以对事物进行分组,以便该属性仅存在一次?

例如,在以下代码中,我使用相同的属性三次:

#[cfg(target_os = "linux")]
extern crate nix;
#[cfg(target_os = "linux")]
extern crate libc;

#[cfg(target_os = "linux")]
use std::{
    mem,
};

1 个答案:

答案 0 :(得分:8)

您可以使用帮助程序模块来对整个模块进行cfg,然后重新导出其内容:

#[cfg(target_os = "linux")]
mod linux {
    extern crate nix;
    extern crate libc;
    pub use std::{
        mem,
    };
}
#[cfg(target_os = "linux")]
use linux::*;

尽管如此,您仍然必须两次提及cfg。