Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@wspeirs
Created September 11, 2016 18:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wspeirs/d2e903c7984e7df4c000ce7a94fa5503 to your computer and use it in GitHub Desktop.
Save wspeirs/d2e903c7984e7df4c000ce7a94fa5503 to your computer and use it in GitHub Desktop.
let mut wal_file = try!(OpenOptions::new().read(true).write(true).create(true).open(tree_file_path.to_owned() + ".wal"));
// if we have a WAL file, just replay it into the mem_tree
if try!(wal_file.metadata()).len() != 0 {
let mut buff = vec![0; node_size];
while true {
match wal_file.read_exact(&mut buff) {
Ok(_) => {
let k = try!(decode(&buff[0..max_key_size]));
let v = try!(decode(&buff[max_key_size..max_value_size]));
mem_tree.insert(k,v);
},
Err(e) => if e.kind() == ErrorKind::UnexpectedEof {
break
} else {
return Err(From::from(e));
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment