小编Yjy*_*eff的帖子

如何使用Serde序列化HashMap,并将结构作为JSON的键?

我想序列化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)

rust serde serde-json

5
推荐指数
3
解决办法
3445
查看次数

为什么rocksDB需要多个级别?

RocksDB 1 级中的所有键都已排序。因此我们可以在这个关卡中快速获得钥匙。为什么rocksDB还需要将level 1的文件压缩到level 2呢?

我在 LevelDB 的文档上找到了一种解释:如果同一目录中的文件太多,则在一个目录中打开文件会很慢。但是,正如文档中提到的,我们可以使用分片来解决这个问题。我认为分片比压缩容易得多。我对吗?

提前致谢!

leveldb lsm-tree rocksdb

2
推荐指数
1
解决办法
1016
查看次数

标签 统计

leveldb ×1

lsm-tree ×1

rocksdb ×1

rust ×1

serde ×1

serde-json ×1