#string #reserved #identifier #check #safe #convert #keyword

check_keyword

一个用于检查字符串是否为关键字并将其转换为安全的非关键字的特质

5个不稳定版本

0.3.1 2024年6月17日
0.3.0 2024年6月17日
0.2.0 2021年12月3日
0.1.1 2021年6月13日
0.1.0 2021年6月13日

#62 in 过程宏

Download history 874/week @ 2024-05-03 1022/week @ 2024-05-10 995/week @ 2024-05-17 683/week @ 2024-05-24 890/week @ 2024-05-31 533/week @ 2024-06-07 1037/week @ 2024-06-14 675/week @ 2024-06-21 628/week @ 2024-06-28 487/week @ 2024-07-05 486/week @ 2024-07-12 422/week @ 2024-07-19 556/week @ 2024-07-26 638/week @ 2024-08-02 699/week @ 2024-08-09 371/week @ 2024-08-16

2,322 每月下载量
用于 25 个crate(9个直接使用)

MIT/Apache

12KB
147

check_keyword

一个用于检查字符串是否为关键字并将其转换为安全的非关键字的特质。支持所有类型的关键字,并可以使用编译特性来检查与过去的Rust版本兼容性。默认为Rust 2021。

此库假定正在检查的字符串在其他方面都是有效的标识符,除了它可能是一个保留关键字。

您可以使用以下命令添加此依赖项

[dependencies]
check_keyword = "0.3.1"

示例

assert!(!"not_a_keyword".is_keyword());
assert_eq!("not_a_keyword".into_safe(), "not_a_keyword");

assert!("match".is_keyword());
assert_eq!("match".into_safe(), "r#match");

CheckKeyword::into_safe 方法会自动为您检查 CheckKeyword::is_keyword。如果您不关心它最初是否为关键字,则无需调用 CheckKeyword::is_keyword

CheckKeyword::is_keyword 仅检查严格和保留关键字。对于更详细的信息和支持弱关键字,请使用 CheckKeyword::keyword_status

实现者

此特质对所有实现 AsRef<str> 的类型有一个通配实现。这包括 &strString

原始标识符

原始标识符是以 r# 开头的标识符,大多数关键字都可以用作原始标识符。

Rust版本

默认情况下,Rust 2018 版本中添加的关键词包含在已检查关键词列表中。您可以通过在 Cargo.toml 中设置 default-features = false 来禁用此功能。

[dependencies]
check_keyword = { version = "0.3.1", default-features = false }

此crate与Rust 2021版本兼容。未来的Rust版本可能会添加新的关键词,并且此crate将会更新以反映这一点。(或者如果您忘记,也可以在github上创建一个issue。)

许可证:MIT OR Apache-2.0

依赖项

~0.6–1.1MB
~24K SLoC