#variant #const #aliases #define #const-types #enum-like

const_type

定义类似于枚举的常量类型,但具有变体的别名

3 个版本

0.1.3 2019年11月3日
0.1.1 2019年9月7日
0.1.0 2019年6月14日

#2809Rust 模式


librs 中使用

MIT 许可证

4KB

const_type

定义类似于枚举的 enum 类型的 const 类型,但具有变体的别名

  use const_type::
  {
    Const,
  };

  Const!
  {
    /// `Bar` is like enum, but variants might have the same value.
    /// `usize` is the default type, so `: usize` can be omitted in this case.
    pub Bar: usize
    {
      /// Even Variants could be and should be documented.
      A = 1,
      B = 2,
      C = 2,
      D = Bar::A.0,
    }
  }

可以这样使用

  let Foo: Bar = Bar::B;

因为枚举实际上是 struct,实现 trait 或方法可以像通常一样进行

impl Into < usize > for Bar
{
  fn into
  (
    self
  )
  ->  usize
  {
    self.0 as usize
  }
}

无运行时依赖