#枚举 #常量 #静态 #惰性计算 #

无需 std 枚举类型

枚举变体的静态属性

1 个不稳定版本

0.1.0 2022 年 3 月 9 日

#25#惰性

Apache-2.0

17KB
270 行(不含注释)

枚举类型

带属性的枚举类型

此软件包提供了一个宏,用于向枚举变体添加静态、常量或惰性初始化属性。

这是对 enum_properties 软件包的一种改进。它扩展了它,并允许在同一个枚举上定义多个属性结构,同时添加了对 static(而不是 const)属性以及惰性初始化属性的支持。然而,这些额外功能集带来了一种稍微冗长的语法,因此,如果您只需要单个常量初始化属性,您可能会发现 enum_properties 更简洁。不过,您也可以将此软件包与 enum_properties 结合使用,如 枚举属性组合示例 中所示,取两者之长。

有关详细信息,请参阅 props 宏。

示例

use enumeraties::props;

// A property struct
struct Prop { name: &'static str }

// An enum
enum Foo {A}

// Defining `Prop` on `Foo` via Deref
props! {
    impl Deref for Foo as const Prop {
        Self::A => {
            name: "Foo",
        }
    }
}

// Accessing the property on `Foo`
assert_eq!(Foo::A.name, "Foo");

依赖项

~10KB