#literals #string #create #macro

literal_cstr

一个易于创建字面量C字符串的宏

2个版本

使用旧的Rust 2015

0.1.1 2018年10月7日
0.1.0 2018年8月18日

#148#literals

MIT/Apache

7KB

字面量C字符串

Build Status

一个用于创建字面量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-2.0许可证中的贡献,将按上述方式双许可,没有任何附加条款或条件。

依赖

~2MB
~47K SLoC