#associated #constant #const

guilt-by-association

用于声明/实现具有虚假关联常数的特征的宏(在稳定版 Rust 中)

8 个版本 (4 个破坏性更新)

使用旧的 Rust 2015

0.5.0 2018 年 3 月 13 日
0.4.1 2017 年 7 月 25 日
0.4.0 2017 年 2 月 13 日
0.3.1 2017 年 1 月 20 日
0.1.0 2015 年 7 月 2 日

#2597 in Rust 模式

每月下载 24 次

MIT 许可证

15KB
165

此软件包定义了一个宏,该宏近似于在 nightly Rust 构建中使用的关联常数的语法,但它将常数转换为函数,因此不需要 nightly 功能。因此,我们可以在稳定版 Rust 中拥有关联常数的外观(但不是优点)。

需要 rust 1.3 或更高版本。每当关联常数得到稳定时,此包将不再相关。

要生成文档,请运行 cargo doc


lib.rs:

用于声明/实现具有虚假关联常数的特征的宏(在稳定版 Rust 中)

在语法方面目前非常脆弱:不支持具有任何类型泛型参数(无论是生命周期还是类型)的特性和 impl。

相同的宏用于声明具有关联常数的特性,实现此类特性以及访问常数。

语法与为关联常数提出的语法相同,

  • 所有常数都必须在特性和 impl 的开头,在所有函数之前

请参阅测试用例以获取示例用法。

目前它们根本不是常数 —— 它们只是简单地扩展为与声明的常量具有相同名称的静态函数。因此,您可以通过调用 Trait::CONST() 来访问常量,或者(为了未来的兼容性,以防宏实现更改),再次调用宏以访问常量,如 guilty!(Trait::CONST)

没有运行时依赖