我想序列化HashMap与结构作为键:
extern crate serde_json; // 1.0.22
#[macro_use]
extern crate serde_derive; // 1.0.68
use std::collections::HashMap;
fn main() {
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Hash)]
struct Foo {
x: u64,
}
#[derive(Serialize, Deserialize, Debug)]
struct Bar {
x: HashMap<Foo, f64>,
}
let mut p = Bar { x: HashMap::new() };
p.x.insert(Foo { x: 0 }, 0.0);
let serialized = serde_json::to_string(&p).unwrap();
}
Run Code Online (Sandbox Code Playgroud)
这段代码可以编译,但是当我运行它时,我得到一个错误:
extern crate serde_json; // 1.0.22
#[macro_use]
extern crate serde_derive; // 1.0.68
use std::collections::HashMap;
fn main() {
#[derive(Serialize, Deserialize, …Run Code Online (Sandbox Code Playgroud) RocksDB 1 级中的所有键都已排序。因此我们可以在这个关卡中快速获得钥匙。为什么rocksDB还需要将level 1的文件压缩到level 2呢?
我在 LevelDB 的文档上找到了一种解释:如果同一目录中的文件太多,则在一个目录中打开文件会很慢。但是,正如文档中提到的,我们可以使用分片来解决这个问题。我认为分片比压缩容易得多。我对吗?
提前致谢!