假设我有一个文件,其中包含一些常量。该文件可能来自不同的服务,并且对于不同的场景可能有所不同。现在我想从程序中榨取最后一点性能,希望编译器进行尽可能多的优化,如果需要,我会为每个场景单独编译项目。
有没有办法在编译时获取文件,通过一些转换逻辑将其转换为 Rust 代码,例如生成一些常量,然后编译结果(全部在 Rust 工具内,没有其他代码生成)?
Rust中是否有提供iter()方法的特性?我只发现了IntoIterator供给的特性into_inter().
这里要明确一点:我不想要提供的Iterator特性,而是需要提供next()的特性iter().
[旁注:有时候我对Rust libs非常困惑.Iterator供应next(),但IntoIterator供应into_iter()(不供应next()和移动的约定),虽然IntoIter是一个结构,实现Iterator特征(移动值).]
我正在尝试写一个小的替代品i3status,这是一个与符合此协议的i3bar通讯的小程序。他们通过stdin和stdout交换消息。
两个方向上的流都是json对象的无限数组。从i3bar到i3status(我要替换)的流的开始看起来像这样:
[
{"name": "some_name_1","instance": "some_inst_1","button": 1,"x": 213,"y": 35}
,{"name": "some_name_1","instance": "some_inst_2","button": 2,"x": 687,"y": 354}
,{"name": "some_name_2","instance": "some_inst","button": 1,"x": 786,"y": 637}
,{"name": "some_name_3","instance": "some_inst","button": 3,"x": 768,"y": 67}
...
Run Code Online (Sandbox Code Playgroud)
这是代表点击的对象的“数组”。该阵列将永远不会关闭。
我的问题现在是:解析此问题的正确方法是什么?
显然,我无法使用该json库,因为这不是有效的json对象。