1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2017年2月2日 |
---|
#1551 在 Rust 模式
8KB
67 行
rucky
我感到 rucky!
关于
小型、模糊、草率、快速的 Rust 宏库
当前提供
- 模拟导入语句
示例
以下快速示例将扩展为
#[macro_use] extern crate rucky;
import_crates! {
rustc_serialize, toml;
}
import! {
std::io {stdout, Write};
std::ffi *;
toml {Value, Table};
}
:
extern crate rustc_serialize;
extern crate toml;
use std::io::{stdout, Write};
use std::ffi::*;
import_crates!
宏只能生成 extern crate
语句,注意它永远不会导入它们的模块成员,无论是自动的还是显式的。因此,您只能在宏块中放置crate的名称。您还需要尾部分号 ;
来告诉宏在哪里停止语句。
您还可以使用以下语法按属性分组crate
import_crates! {
rand, serde_json;
#[cfg(windows)] winapi, kernel32_sys;
}
代码将是
extern crate rand;
extern crate serde_json;
#[cfg(windows)] extern crate winapi;
#[cfg(windows)] extern crate kernel32_sys;
导入模块
对于 import!
宏,其内部使用的语法与 use
语句的语法非常相似,但有一些差异。
基本用法如下
import!(path::to::module::Item);
或一次导入多个项
import! {
nickel { Nickel, HttpRouter };
toml { Value, Table };
std::collections { LinkedList, HashSet };
}
请注意,您需要使用空格分隔模块名称的最后一部分和项目块,而不是通常在 use
语句中使用的双冒号 ::
。
也支持全局导入
import!(std::io::prelude *);
import! {
rustc_serialize *;
regex *;
}
如您所见,空格分隔规则也适用于 glob-star *
和路径段以及多项目导入。
限制
- 导入项目时,您不能使用
as
关键字定义别名
许可证
该库以 MIT 和 Apache 2.0 双重许可证发布。