Mercurial > lbo > hg > leveldb-rs
changeset 403:e06f8508da0c
leveldb-tool: Make iterating much faster.
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Tue, 10 Oct 2017 21:50:15 +0200 |
parents | bbbf5ebea758 |
children | e58fe2511a3f |
files | examples/leveldb-tool/src/main.rs |
diffstat | 1 files changed, 9 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/examples/leveldb-tool/src/main.rs Tue Oct 10 21:18:56 2017 +0200 +++ b/examples/leveldb-tool/src/main.rs Tue Oct 10 21:50:15 2017 +0200 @@ -3,6 +3,7 @@ use leveldb_rs::{DB, LdbIterator, Options}; use std::env::args; +use std::io::{self, Write}; use std::iter::FromIterator; fn get(db: &mut DB, k: &str) { @@ -24,15 +25,14 @@ fn iter(db: &mut DB) { let mut it = db.new_iter().unwrap(); - while let Some((k, v)) = it.next() { - match (String::from_utf8(k), String::from_utf8(v)) { - (Ok(sk), Ok(sv)) => println!("{} => {}", sk, sv), - (Err(utf8e), Ok(sv)) => println!("{:?} => {}", utf8e.into_bytes(), sv), - (Ok(sk), Err(utf8e)) => println!("{} => {:?}", sk, utf8e.into_bytes()), - (Err(utf81), Err(utf82)) => { - println!("{:?} => {:?}", utf81.into_bytes(), utf82.into_bytes()) - } - } + let (mut k, mut v) = (vec![], vec![]); + let mut out = io::BufWriter::new(io::stdout()); + while it.advance() { + it.current(&mut k, &mut v); + out.write_all(&k).unwrap(); + out.write_all(b" => ").unwrap(); + out.write_all(&v).unwrap(); + out.write_all(b"\n").unwrap(); } }