用于在没有虚拟分派的情况下迭代实现特征的类型集合的框架

时间:2024-07-18 13:26:53
【文件属性】:

文件名称:用于在没有虚拟分派的情况下迭代实现特征的类型集合的框架

文件大小:54KB

文件格式:ZIP

更新时间:2024-07-18 13:26:53

zero_v

零_vZero_V 是一个在没有动态多态的情况下定义实现某些特征的对象集合的行为的实验。这是一个带有一些辅助实用程序的小板条箱,以及 zero_v 宏,该宏生成您的特征和函数所需的样板,以支持 Zero_V 生成的集合。如果以下所有条件都为真,它会很有用:库用户在编译时将始终知道类型集合的组成。图书馆用户应该能够轻松更改馆藏构成。Vtable 开销很重要。例如,假设您编写了一个事件日志库,允许用户使用插件对其进行扩展,以便在日志记录之前更改事件。使用动态多态/虚拟表,客户端代码可能看起来像:let plugins:Vec>=Vec! [Box::new (TimestampReformatter::new ()),Box::new (HostMachineFieldAdder::new ()),Box::new (UserFieldAdder::new ()), ];letmut logger= EventLogger::with_plugins (plugins);let events= EventStream::new ();for eventin


【文件预览】:
zero_v-main
----.gitignore(37B)
----benches()
--------integer_ops.rs(6KB)
----src()
--------test.rs(620B)
--------composite.rs(5KB)
--------lib.rs(9KB)
----Cargo.toml(809B)
----blob()
--------Zero_V_Benchmarks.png(29KB)
----LICENSE-MIT(1KB)
----zero_v_gen()
--------src()
--------Cargo.toml(590B)
--------LICENSE-MIT(1KB)
--------README.md(168B)
--------tests()
--------LICENSE-APACHE(11KB)
----README.md(9KB)
----CONTRIBUTORS.txt(122B)
----LICENSE-APACHE(11KB)

网友评论