#编译时 #字符串 #utf-16 #字符串字面量 #过程宏 #宽字符

wchar

编译时 UTF-16 和 UTF-32 宽字符串的过程宏

12 个版本 (7 个破坏性更改)

0.11.1 2024年6月28日
0.11.0 2021年8月9日
0.10.1 2021年5月14日
0.6.1 2020年8月27日
0.2.0 2018年6月25日

#149 in 文本处理

Download history 1870/week @ 2024-05-01 1895/week @ 2024-05-08 2622/week @ 2024-05-15 1937/week @ 2024-05-22 2850/week @ 2024-05-29 2901/week @ 2024-06-05 2108/week @ 2024-06-12 1949/week @ 2024-06-19 1307/week @ 2024-06-26 1641/week @ 2024-07-03 1971/week @ 2024-07-10 1664/week @ 2024-07-17 3217/week @ 2024-07-24 3086/week @ 2024-07-31 3202/week @ 2024-08-07 2083/week @ 2024-08-14

11,864 每月下载量
7 crates 中使用

MIT/Apache

20KB
342 代码行

wchar

build status crates.io docs.rs

此库引入了两个宏,用于在编译时创建 UTF-16 和 UTF-32 宽字符串,类似于 C 中的 L 字符串字面量。

[dependencies]
wchar = "0.10"

编译器支持:需要 rustc 1.53+

示例

use wchar::{wch, wchz, wchar_t};

// Equivalent to `#define RUST L"Rust"` in C.
const RUST: &[wchar_t] = wch!("Rust\0"); // C strings are nul-terminated.
// Equivalent to `#define ALSO_RUST L"Rust"` in C.
const ALSO_RUST: &[wchar_t] = wchz!("Rust");

assert_eq!(RUST, &['R' as wchar_t, 'u' as wchar_t, 's' as wchar_t, 't' as wchar_t, 0x0000]);
assert_eq!(RUST, ALSO_RUST);

许可证

本项目采用 Apache License, Version 2.0 或 MIT License,任选其一。

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交的工作包括在本项目中,将根据上述双许可方式授权,不附加任何额外条款或条件。

依赖项

~1.5MB
~35K SLoC