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

Download history 176/week @ 2024-04-18 176/week @ 2024-04-25 114/week @ 2024-05-02 129/week @ 2024-05-09 112/week @ 2024-05-16 99/week @ 2024-05-23 153/week @ 2024-05-30 105/week @ 2024-06-06 129/week @ 2024-06-13 151/week @ 2024-06-20 129/week @ 2024-06-27 84/week @ 2024-07-04 117/week @ 2024-07-11 274/week @ 2024-07-18 181/week @ 2024-07-25 98/week @ 2024-08-01

692 每月下载量
typename 中使用

MIT/Apache

7KB

typename

Build Status Latest Version Documentation

是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]");
}

贡献

typenameStrymon 项目的组成部分

许可证

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