7 个版本
0.2.2 | 2020年4月14日 |
---|---|
0.2.1 | 2020年4月14日 |
0.1.3 | 2020年4月9日 |
#4 in #initialized
25KB
493 行
init_tree
在程序的初始化过程中,某些单例通常会依赖于其他单例。例如,在初始化 Foo 之前,Foo 需要获取 Bar 中的数据。对于拥有许多维护者的大型软件项目来说,保持这种初始化过程清晰可能会变得头疼。这就是 init_tree 的作用所在。
在程序启动时,您将所有单例添加到树中,然后在树上调用 init()
。它将在运行时解析所有数据依赖。它通过利用所有单例上实现的特性行为 Init
来做到这一点。对于具有 Default
实现的单例,Init
将自动实现。Init
特性提供了一份依赖列表和一个用这些依赖初始化结构的功能。此外,还提供了一个宏 impl_init!
,以便轻松实现 Init
。
这个包可以直接使用,但是需要更好的文档和更多的单元测试。
依赖项
~445–630KB
~13K SLoC