这个问题在这里已有答案:
我很新,在Rust中迷失了一点。
我想将键和值添加到具有put函数的数据存储中,该函数需要两个字节的字符串文字:
batch.put(b"foxi", b"maxi");
我生成了一堆这些k-v对:
for _ in 1..1000000 {
let mut ivec = Vec::new();
let s1: u8 = rng.gen();
let s2: u8 = rng.gen();
ivec.push(s1);
ivec.push(s2);
debug!("Adding key: {} and value {}", s1, s2);
vec.push(ivec);
}
let _ = database::write(db, vec);
我有一个尝试添加它们的fn:
pub fn write(db: DB, vec: Vec<Vec<u8>>) {
let batch = WriteBatch::new();
for v in vec {
batch.put(v[0], v[1]);
}
db.write(&batch).unwrap();
}
当我尝试编译这个时,我得到:
error[E0308]: mismatched types
--> src/database.rs:17:19
|
17 | batch.put(v[0], v[1]);
| ^^^^ expected &[u8], found u8
|
= note: expected type `&[u8]`
found type `u8`
error[E0308]: mismatched types
--> src/database.rs:17:25
|
17 | batch.put(v[0], v[1]);
| ^^^^ expected &[u8], found u8
|
= note: expected type `&[u8]`
found type `u8`
我现在用借阅检查器打了一段时间,但是我无法让它运转起来。从u8s获取字节文字字符串的最佳方法是什么?
以下作品:
batch.put(&v[0].as_bytes(), &v[1].as_bytes())