10个稳定版本
1.4.0 | 2021年7月22日 |
---|---|
1.3.3 | 2021年7月22日 |
0.1.1 | 2021年7月12日 |
#30 in #fifo
在any-mpsc中使用
13KB
300 行
dfb
此crate定义并提供对此类型接口的访问
Dfb(HashMap<TypeId, VecDeque<Box<dyn Any>>>)
它的大部分基本方法仅仅是HashMap等价的透传,更有趣的是这些
insert
:仅接受一个值。其类型的TypeId将被用作键。如果此类型的一个或多个值已经存在于映射中,这将向包含它们的FIFO中推入一个新值。如果没有值存在,这将创建一个包含插入元素的新的FIFO。
remove
:使用泛型类型而不是键参数来确定要删除的内容。如果存在,返回并移除此类型的最早插入元素。如果返回的元素是该类型最后剩余的元素,则删除此类型的内部FIFO。
insert_dyn
与insert
类似,但接受一个Box<dyn Any>
并将其放置在根据其包含类型的TypeId正确的位置。
还实现了各种trait,以模仿HashMap接口,但大多数只能提供对映射中存储的真正的VecDeque<Box<dyn Any>>
的访问。
可以使用dfb!(expr*)
宏快速初始化任意类型元素的dfb。