#initialization #singleton #initialized #series #initializing #process #foo

bin+lib init_tree

一个用于初始化一系列单例库的库,这些单例之间相互依赖

7 个版本

0.2.2 2020年4月14日
0.2.1 2020年4月14日
0.1.3 2020年4月9日

#4 in #initialized

MIT/Apache

25KB
493

init_tree

在程序的初始化过程中,某些单例通常会依赖于其他单例。例如,在初始化 Foo 之前,Foo 需要获取 Bar 中的数据。对于拥有许多维护者的大型软件项目来说,保持这种初始化过程清晰可能会变得头疼。这就是 init_tree 的作用所在。

在程序启动时,您将所有单例添加到树中,然后在树上调用 init()。它将在运行时解析所有数据依赖。它通过利用所有单例上实现的特性行为 Init 来做到这一点。对于具有 Default 实现的单例,Init 将自动实现。Init 特性提供了一份依赖列表和一个用这些依赖初始化结构的功能。此外,还提供了一个宏 impl_init!,以便轻松实现 Init

这个包可以直接使用,但是需要更好的文档和更多的单元测试。

依赖项

~445–630KB
~13K SLoC