#cfg #macro #proc-macro

cfg-or-panic

当条件不满足时,使用 unimplemented!() 替换函数体

3 个不稳定版本

0.2.1 2024 年 5 月 21 日
0.2.0 2023 年 9 月 19 日
0.1.1 2023 年 8 月 30 日
0.1.0 2023 年 8 月 30 日

855Rust 模式

Download history 2457/week @ 2024-05-02 2937/week @ 2024-05-09 2935/week @ 2024-05-16 1918/week @ 2024-05-23 921/week @ 2024-05-30 838/week @ 2024-06-06 831/week @ 2024-06-13 637/week @ 2024-06-20 836/week @ 2024-06-27 887/week @ 2024-07-04 840/week @ 2024-07-11 552/week @ 2024-07-18 571/week @ 2024-07-25 540/week @ 2024-08-01 749/week @ 2024-08-08 812/week @ 2024-08-15

每月下载量 2,767

Apache-2.0

8KB
131 行(不包括注释)

#[cfg_or_panic(..)]

将函数体保持在 #[cfg(..)] 之下,或者在使用 #[cfg(not(..))] 的条件下替换为 unimplemented!()

示例

use cfg_or_panic::cfg_or_panic;

#[cfg_or_panic(feature = "foo")]
fn foo() -> i32 {
    42
}

#[test]
#[cfg_attr(not(feature = "foo"), should_panic)]
fn test() {
    assert_eq!(foo(), 42);
}

依赖关系

~250–690KB
~16K SLoC