#named #name #user-friendly #stable #string #getting #api

named_type

为稳定 Rust 中类型的用户友好名称字符串提供 API

10 个版本

0.2.2 2020 年 2 月 5 日
0.2.1 2019 年 2 月 12 日
0.2.0 2019 年 1 月 30 日
0.1.6 2018 年 10 月 17 日
0.1.3 2017 年 3 月 15 日

#33 in #getting

Download history 2498/week @ 2024-04-03 1714/week @ 2024-04-10 2817/week @ 2024-04-17 1538/week @ 2024-04-24 1775/week @ 2024-05-01 1386/week @ 2024-05-08 1915/week @ 2024-05-15 1974/week @ 2024-05-22 2073/week @ 2024-05-29 1526/week @ 2024-06-05 1848/week @ 2024-06-12 1061/week @ 2024-06-19 939/week @ 2024-06-26 927/week @ 2024-07-03 1332/week @ 2024-07-10 369/week @ 2024-07-17

3,681 每月下载次数
用于 devii

MIT/Apache

4KB

此crate提供NamedType特质。`named_type_derive` crate还提供使用`#[derive(NamedType)]`自动推导此特质的能力。

示例

您可以为任何结构体或枚举推导NamedType以获得一些明显的生成名称。对于大多数类型来说,这是此crate的预期用法。

use named_type_derive::*;
use named_type::NamedType;

#[derive(NamedType)]
struct MyStruct {}

#[derive(NamedType)]
enum MyEnum {}

fn main() {
    assert_eq!(MyStruct::type_name(), concat!(module_path!(), "::MyStruct"));
    assert_eq!(MyStruct::short_type_name(), "MyStruct");

    assert_eq!(MyEnum::type_name(), concat!(module_path!(), "::MyEnum"));
    assert_eq!(MyEnum::short_type_name(), "MyEnum");
}

由于简短的类型名称可能存在冲突,因此可以通过添加前缀或后缀到生成名称中,以减少歧义。请注意,这仅影响简短的类型名称。


#[derive(NamedType)]
#[named_type(short_suffix = "_suffix")]
struct Suffixed {}

#[derive(NamedType)]
#[named_type(short_prefix = "Pre")]
enum Prefixed {}

assert_eq!(Suffixed::type_name(), concat!(module_path!(), "::Suffixed"));
assert_eq!(Suffixed::short_type_name(), "Suffixed_suffix");

assert_eq!(Prefixed::type_name(), concat!(module_path!(), "::Prefixed"));
assert_eq!(Prefixed::short_type_name(), "PrePrefixed");

无运行时依赖