#macro #fuzzy #funny #programming #import #hasty #sketchy

rucky

用于快速、草率、有趣的 Rust 编程的宏

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2017年2月2日

#1551Rust 模式

MIT/Apache

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 双重许可证发布。

无运行时依赖项