2个版本
使用旧的Rust 2015
0.1.1 | 2018年10月7日 |
---|---|
0.1.0 | 2018年8月18日 |
#148 在 #literals
7KB
字面量C字符串
一个用于创建字面量C字符串的过程宏。
问题
我厌倦了输入以下内容
let s = CString::new("Hello, world!").unwrap();
理想情况下,我希望能像字节字符串的语法一样做,但这需要语言变更。
解决方案
我决定创建一个足够接近的宏。
let s = c!("Hello, world!");
安装
目前需要rust的nightly构建。 使用 rustc 1.31.0-nightly (4efdc04a5 2018-10-06)
或更新的版本。
[dependencies]
literal_cstr = "0.1"
#![feature(proc_macro_hygiene)]
extern crate literal_cstr;
use literal_cstr::c;
过程宏是稳定的,但为了使用字面量字符串表达式中的宏,需要 #![feature]
。
用法
let s = c!("Hello, world!");
查看 /examples/show.rs 以获取完整示例。
测试
$ cargo test
许可
根据您的选择,受Apache License 2.0或MIT许可证的许可。
- Apache License 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确表示,否则任何有意提交给作品并由您定义在Apache-2.0许可证中的贡献,将按上述方式双许可,没有任何附加条款或条件。
依赖
~2MB
~47K SLoC