#preprocessor #c #proc-macro #input #procedural #hello-world #stupid

cpreprocess

在输入上运行C预处理器的过程宏

3个稳定版本

1.0.2 2022年4月7日
1.0.1 2022年3月3日
1.0.0 2022年3月2日

过程宏 中排名 1247

MIT 许可证

9KB
152

crates.io docs.rs license

cpreprocess

一个愚蠢且邪恶的Rust过程宏,它对输入运行C预处理器

用法

[dependencies]
cpreprocess = "*"

示例

fn main() {
    cpreprocess::cpreprocess!(r#"
        #define MACRO(NAME) fn print_ ## NAME () { println!("hello world"); }

        MACRO(hello_world)

        print_hello_world()
    "#)
}

夜间版本

如果您使用的是Rust夜间编译器,您可以在不使用字符串字面量的情况下使用此宏。只需为此crate启用nightly Cargo功能即可。

我认为这主要是一个实验性的,因为它依赖于提取宏内容的不完全准确的方法。

fn main() {
    cpreprocess::cpreprocess! {
        #define MACRO(NAME) fn print_ ## NAME () { println!("hello world"); }

        MACRO(hello_world)

        print_hello_world()
	}
}

依赖项

~2MB
~46K SLoC