2 个版本
使用旧的 Rust 2015
0.1.1 | 2016年11月26日 |
---|---|
0.1.0 | 2016年11月26日 |
#28 in #简单
11KB
245 行
ecp
轻松构建编译器插件。
文档
抱歉,您需要使用 cargo doc
命令来构建文档。
先决条件
ecp 需要最新的 夜间版 Rust。
为什么使用 "编译器插件" 而不是 "宏 1.1"?
我需要的不仅是 "自定义 derive",还需要更多 "编译器插件" 功能。目前 "宏 1.1" 也还不稳定。
使用方法
在 Cargo.toml 中添加依赖项
[dependencies]
ecp = "^0.1"
在你的 main.rs
或 lib.rs
中
#![feature(quote, plugin_registrar, rustc_private)]
extern crate syntax;
extern crate ecp;
示例
创建一个简单的宏,打印 "Hello world!"
#![feature(quote, plugin_registrar, rustc_private)]
extern crate syntax;
extern crate ecp;
use ecp::prelude::*;
#[plugin_registrar]
pub fn register(reg: &mut Registry) {
reg.register_macro("test", test);
}
pub fn test(cx: &mut ExtCtxt, _: Span, _: &[TokenTree]) -> Box<MacResult + 'static> {
MacEager::expr(quote_expr!(cx, println!("Hello world!")))
}
许可证
ecp 主要在 MIT 许可证的条款下分发。有关详细信息,请参阅 LICENSE。