我是新手,迷上了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获得字节文字字符串的最佳方法是什么?
答案 0 :(得分:0)
以下作品:
batch.put(&v[0].as_bytes(), &v[1].as_bytes())