11个不稳定版本 (3个破坏性更新)
0.4.1 | 2024年5月27日 |
---|---|
0.4.0 | 2024年5月27日 |
0.3.5-alpha | 2024年5月27日 |
0.2.0 | 2024年4月26日 |
0.1.2 | 2024年4月24日 |
#2362 in 数据结构
每月92次下载
用于 structz
7KB
60 代码行
stringz
将字符串转换为类型,使其可用作泛型参数。
安装
cargo add stringz
对于 no_std
用户
cargo add stringz --no-default-features
示例
use stringz::{TypedString, string};
fn test_hello<T: TypedString>() {
assert_eq!(T::value(), "hello");
}
test_hello::<string!("hello")>();
说明
string
宏将 "hello"
转换为以下元组类型
(Character<'h'>, Character<'e'>, Character<'l'>, Character<'l'>, Character<'o'>)
注意:上述形式仅为了便于理解,实际使用的 tuplez 的 Tuple
类型。
所有生成的类型都是零大小类型
use stringz::string;
assert_eq!(std::mem::size_of::<string!("no matter how long it is")>(), 0);
lib.rs
:
将字符串转换为类型,使其可用作泛型参数。
安装
cargo add stringz
对于 no_std
用户
cargo add stringz --no-default-features
示例
use stringz::{TypedString, string};
fn test_hello<T: TypedString>() {
assert_eq!(T::value(), "hello");
}
test_hello::<string!("hello")>();
说明
string
宏将 "hello"
转换为以下元组类型
(Character<'h'>, Character<'e'>, Character<'l'>, Character<'l'>, Character<'o'>)
注意:上述形式仅为了便于理解,实际使用的 Tuple
类型。
所有生成的类型都是零大小类型
use stringz::string;
assert_eq!(std::mem::size_of::<string!("no matter how long it is")>(), 0);
依赖项
~0.6–1MB
~21K SLoC