Skip to content

Commit

Permalink
stopped using into_inner. replaced with raw_ref() for keys
Browse files Browse the repository at this point in the history
  • Loading branch information
redixhumayun committed Jun 10, 2024
1 parent 20b7cf0 commit 9f70a38
Show file tree
Hide file tree
Showing 6 changed files with 12 additions and 13 deletions.
6 changes: 3 additions & 3 deletions mini-lsm-starter/src/block/builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,13 @@ impl BlockBuilder {
pub fn add(&mut self, key: KeySlice, value: &[u8]) -> bool {
// get the overlap of the key with the first key
let key_overlap = key
.into_inner()
.raw_ref()
.iter()
.zip(self.first_key.as_key_slice().into_inner().iter())
.zip(self.first_key.as_key_slice().raw_ref().iter())
.take_while(|(a, b)| a == b)
.count() as u16;
let key_overlap_bytes = key_overlap.to_le_bytes();
let rest_of_key = &(key.into_inner())[key_overlap as usize..];
let rest_of_key = &(key.raw_ref())[key_overlap as usize..];
let rest_of_key_len = (rest_of_key.len() as u16).to_le_bytes();

let value_length = value.len();
Expand Down
2 changes: 1 addition & 1 deletion mini-lsm-starter/src/block/iterator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ impl BlockIterator {
let key_length = u16::from_le_bytes(key_length_raw.try_into().unwrap());

let (key, rest) = rest.split_at(key_length as usize);
let key_overlap = &(self.first_key.clone().into_inner())[..key_overlap_length as usize];
let key_overlap = &(self.first_key.raw_ref())[..key_overlap_length as usize];
let mut full_key = Vec::new();
full_key.extend_from_slice(&key_overlap);
full_key.extend_from_slice(&key);
Expand Down
2 changes: 1 addition & 1 deletion mini-lsm-starter/src/lsm_iterator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ impl StorageIterator for LsmIterator {
}

fn key(&self) -> &[u8] {
self.inner.key().into_inner()
self.inner.key().raw_ref()
}

fn value(&self) -> &[u8] {
Expand Down
10 changes: 5 additions & 5 deletions mini-lsm-starter/src/lsm_storage.rs
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,7 @@ impl LsmStorageInner {
return false;
}
if let Some(bloom_filter) = &sstable.bloom {
if !bloom_filter.may_contain(farmhash::fingerprint32(key.as_key_slice().into_inner())) {
if !bloom_filter.may_contain(farmhash::fingerprint32(key.as_key_slice().raw_ref())) {
return false;
}
}
Expand Down Expand Up @@ -763,19 +763,19 @@ impl LsmStorageInner {
table_last: &KeyBytes,
) -> bool {
match lower {
Bound::Excluded(key) if key >= table_last.as_key_slice().into_inner() => {
Bound::Excluded(key) if key >= table_last.as_key_slice().raw_ref() => {
return false;
}
Bound::Included(key) if key > table_last.as_key_slice().into_inner() => {
Bound::Included(key) if key > table_last.as_key_slice().raw_ref() => {
return false;
}
_ => {}
}
match upper {
Bound::Excluded(key) if key <= table_first.as_key_slice().into_inner() => {
Bound::Excluded(key) if key <= table_first.as_key_slice().raw_ref() => {
return false;
}
Bound::Included(key) if key < table_first.as_key_slice().into_inner() => {
Bound::Included(key) if key < table_first.as_key_slice().raw_ref() => {
return false;
}
_ => {}
Expand Down
3 changes: 1 addition & 2 deletions mini-lsm-starter/src/table/builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,7 @@ impl SsTableBuilder {
self.first_key = key.to_key_vec().raw_ref().to_vec();
}

self.key_hashes
.push(farmhash::fingerprint32(key.into_inner()));
self.key_hashes.push(farmhash::fingerprint32(key.raw_ref()));

if self.builder.add(key, value) {
self.last_key = key.to_key_vec().raw_ref().to_vec();
Expand Down
2 changes: 1 addition & 1 deletion mini-lsm-starter/src/tests/week1_day3.rs
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ fn generate_small_block() -> Block {
let value = value_of(idx);
println!(
"*****Adding key {} value {} pair to block*****",
String::from_utf8(key.clone().into_inner()).unwrap(),
String::from_utf8(key.clone().raw_ref().to_vec()).unwrap(),
String::from_utf8(value.clone()).unwrap()
);
assert!(builder.add(key.as_key_slice(), &value[..]));
Expand Down

0 comments on commit 9f70a38

Please sign in to comment.