5个版本
使用旧的Rust 2015
0.1.4 | 2019年11月26日 |
---|---|
0.1.3 | 2019年4月19日 |
0.1.2 | 2019年4月19日 |
0.1.1 | 2017年12月4日 |
0.1.0 | 2017年12月4日 |
#5 in #typename
692 每月下载量
在 typename 中使用
7KB
typename
是Rust的 std::intrinsics::type_name
内置函数的一个兼容、安全且稳定的替代品。
弃用通知:此crate已被弃用。内置函数
type_name
已在 Rust 1.38 中稳定。请此crate的使用者迁移到std::any::type_name
。
示例
extern crate typename;
use typename::TypeName;
fn main() {
assert_eq!(String::type_name(), "std::string::String");
assert_eq!(Vec::<i32>::type_name(), "std::vec::Vec<i32>");
assert_eq!([0, 1, 2].type_name_of(), "[i32; 3]");
}
贡献
typename
是 Strymon 项目的组成部分
许可证
typename
主要在MIT许可证和Apache许可证(版本2.0)的条款下分发,部分受各种类似BSD的许可证覆盖。
请参阅LICENSE-APACHE和LICENSE-MIT以获取详细信息。
lib.rs
:
用于派生TypeName
特质的进程宏。
示例
use typename::TypeName;
#[derive(TypeName)]
struct Custom<T: TypeName> {
some_t: T,
}
fn main() {
assert_eq!(Custom::<i32>::type_name(), concat!(module_path!(), "::", "Custom<i32>"));
}
依赖项
~1.5MB
~35K SLoC