#fifo #map #dynamic #wrapper #key-value

dfb

Dynamic-Fifo-Buffer,类似于AnyMap,但使用VecDeque存储值,并将访问视为Fifo

10个稳定版本

1.4.0 2021年7月22日
1.3.3 2021年7月22日
0.1.1 2021年7月12日

#30 in #fifo


any-mpsc中使用

MIT/Apache

13KB
300

dfb

此crate定义并提供对此类型接口的访问

Dfb(HashMap<TypeId, VecDeque<Box<dyn Any>>>)

它的大部分基本方法仅仅是HashMap等价的透传,更有趣的是这些

insert:仅接受一个值。其类型的TypeId将被用作键。如果此类型的一个或多个值已经存在于映射中,这将向包含它们的FIFO中推入一个新值。如果没有值存在,这将创建一个包含插入元素的新的FIFO。

remove:使用泛型类型而不是键参数来确定要删除的内容。如果存在,返回并移除此类型的最早插入元素。如果返回的元素是该类型最后剩余的元素,则删除此类型的内部FIFO。

insert_dyninsert类似,但接受一个Box<dyn Any>并将其放置在根据其包含类型的TypeId正确的位置。

还实现了各种trait,以模仿HashMap接口,但大多数只能提供对映射中存储的真正的VecDeque<Box<dyn Any>>的访问。

可以使用dfb!(expr*)宏快速初始化任意类型元素的dfb。

无运行时依赖