在我的程序开头,我从一个文件中读取数据:
let file = std::fs::File::open("data/games.json").unwrap();
let data: Games = serde_json::from_reader(file).unwrap();
出于以下原因,我想知道如何在编译时完成此操作:
- 性能:无需在运行时进行反序列化
- 可移植性:程序可以在任何机器上运行,而无需随其一起使用包含数据的json文件。
还可能有用的是,数据只能读取,这意味着解决方案可以将其存储为静态数据。
include_bytes
,然后您可以反序列化所需的字节(避免使用json,这会增加二进制大小而没有任何实际用处)。 - Asya Corbeauinclude_bytes!
而不是include_str!
的原因? - Nils André