11 个版本
0.1.10 | 2024年2月12日 |
---|---|
0.1.9 | 2023年9月28日 |
0.1.8 | 2023年5月26日 |
0.1.7 | 2023年1月27日 |
0.1.0 | 2019年12月29日 |
#115 在 Rust 模式
11,906 每月下载量
用于 111 个crate(19 直接)
60KB
1K SLoC
🪶 Tynm -- 类型名称
返回具有指定模块段数的类型名称作为 String
。
用法
将以下内容添加到 Cargo.toml
tynm = "0.1.10"
代码中
#[rustfmt::skip]
assert_eq!(
core::any::type_name::<Option<String>>(), "core::option::Option<alloc::string::String>"
);
#[rustfmt::skip]
let tuples = vec![
(tynm::type_name::<Option<String>>(), "Option<String>"),
(tynm::type_namem::<Option<String>>(1), "core::..::Option<alloc::..::String>"),
(tynm::type_namen::<Option<String>>(1), "..::option::Option<..::string::String>"),
// 1 segment from most and least significant modules.
(tynm::type_namemn::<rust_out::two::three::Struct>(1, 1), "rust_out::..::three::Struct"),
// traits
(tynm::type_name::<dyn core::fmt::Debug>(), "dyn Debug"),
];
tuples
.iter()
.for_each(|(left, right)| assert_eq!(left, right));
动机
Rust 1.38 中稳定的 core::any::type_name
函数返回所有模块段的完全限定类型名。这在错误消息中很难阅读,尤其是在泛型类型的情况下。
通常,简单的类型名更易读,足以区分错误中引用的类型。
许可证
许可协议为以下之一
- Apache License,版本 2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确说明,否则根据 Apache-2.0 许可证定义,您有意提交的任何贡献,均可作为上述双重许可,不附加任何额外条款或条件。
依赖关系
~0.8–1.2MB
~23K SLoC