cleanup: prefer Option<&T> over &Option<T>

It seems to me like `Option<&T>` is pretty much always better to
return than `&Option<T>`.
This commit is contained in:
Martin von Zweigbergk 2022-04-22 18:37:20 -07:00 committed by Martin von Zweigbergk
parent c2ba83af71
commit 3305e045ef
2 changed files with 13 additions and 16 deletions

View file

@ -634,7 +634,7 @@ trait IndexSegment {
fn segment_num_commits(&self) -> u32; fn segment_num_commits(&self) -> u32;
fn segment_parent_file(&self) -> &Option<Arc<ReadonlyIndex>>; fn segment_parent_file(&self) -> Option<&Arc<ReadonlyIndex>>;
fn segment_name(&self) -> Option<String>; fn segment_name(&self) -> Option<String>;
@ -686,14 +686,14 @@ impl<'a> CompositeIndex<'a> {
num_commits: self.0.segment_num_commits(), num_commits: self.0.segment_num_commits(),
name: self.0.segment_name(), name: self.0.segment_name(),
}]; }];
let mut parent_file = self.0.segment_parent_file().clone(); let mut parent_file = self.0.segment_parent_file().cloned();
while parent_file.is_some() { while parent_file.is_some() {
let file = parent_file.as_ref().unwrap(); let file = parent_file.as_ref().unwrap();
levels.push(IndexLevelStats { levels.push(IndexLevelStats {
num_commits: file.segment_num_commits(), num_commits: file.segment_num_commits(),
name: file.segment_name(), name: file.segment_name(),
}); });
parent_file = file.segment_parent_file().clone(); parent_file = file.segment_parent_file().cloned();
} }
levels.reverse(); levels.reverse();
@ -712,8 +712,7 @@ impl<'a> CompositeIndex<'a> {
if pos.0 >= num_parent_commits { if pos.0 >= num_parent_commits {
self.0.segment_entry_by_pos(pos, pos.0 - num_parent_commits) self.0.segment_entry_by_pos(pos, pos.0 - num_parent_commits)
} else { } else {
let parent_file: &ReadonlyIndex = let parent_file: &ReadonlyIndex = self.0.segment_parent_file().unwrap().as_ref();
self.0.segment_parent_file().as_ref().unwrap().as_ref();
// The parent ReadonlyIndex outlives the child // The parent ReadonlyIndex outlives the child
let parent_file: &'a ReadonlyIndex = unsafe { std::mem::transmute(parent_file) }; let parent_file: &'a ReadonlyIndex = unsafe { std::mem::transmute(parent_file) };
@ -726,7 +725,6 @@ impl<'a> CompositeIndex<'a> {
local_match.or_else(|| { local_match.or_else(|| {
self.0 self.0
.segment_parent_file() .segment_parent_file()
.as_ref()
.and_then(|file| IndexRef::Readonly(file).commit_id_to_pos(commit_id)) .and_then(|file| IndexRef::Readonly(file).commit_id_to_pos(commit_id))
}) })
} }
@ -740,7 +738,6 @@ impl<'a> CompositeIndex<'a> {
let parent_match = self let parent_match = self
.0 .0
.segment_parent_file() .segment_parent_file()
.as_ref()
.map_or(PrefixResolution::NoMatch, |file| { .map_or(PrefixResolution::NoMatch, |file| {
file.resolve_prefix(prefix) file.resolve_prefix(prefix)
}); });
@ -1051,8 +1048,8 @@ impl IndexSegment for ReadonlyIndex {
self.num_local_commits self.num_local_commits
} }
fn segment_parent_file(&self) -> &Option<Arc<ReadonlyIndex>> { fn segment_parent_file(&self) -> Option<&Arc<ReadonlyIndex>> {
&self.parent_file self.parent_file.as_ref()
} }
fn segment_name(&self) -> Option<String> { fn segment_name(&self) -> Option<String> {
@ -1164,8 +1161,8 @@ impl IndexSegment for MutableIndex {
self.graph.len() as u32 self.graph.len() as u32
} }
fn segment_parent_file(&self) -> &Option<Arc<ReadonlyIndex>> { fn segment_parent_file(&self) -> Option<&Arc<ReadonlyIndex>> {
&self.parent_file self.parent_file.as_ref()
} }
fn segment_name(&self) -> Option<String> { fn segment_name(&self) -> Option<String> {

View file

@ -37,7 +37,7 @@ use crate::lock::FileLock;
pub trait TableSegment { pub trait TableSegment {
fn segment_num_entries(&self) -> usize; fn segment_num_entries(&self) -> usize;
fn segment_parent_file(&self) -> &Option<Arc<ReadonlyTable>>; fn segment_parent_file(&self) -> Option<&Arc<ReadonlyTable>>;
fn segment_get_value(&self, key: &[u8]) -> Option<&[u8]>; fn segment_get_value(&self, key: &[u8]) -> Option<&[u8]>;
fn segment_add_entries_to(&self, mut_table: &mut MutableTable); fn segment_add_entries_to(&self, mut_table: &mut MutableTable);
@ -130,8 +130,8 @@ impl TableSegment for ReadonlyTable {
self.num_local_entries self.num_local_entries
} }
fn segment_parent_file(&self) -> &Option<Arc<ReadonlyTable>> { fn segment_parent_file(&self) -> Option<&Arc<ReadonlyTable>> {
&self.parent_file self.parent_file.as_ref()
} }
fn segment_get_value(&self, key: &[u8]) -> Option<&[u8]> { fn segment_get_value(&self, key: &[u8]) -> Option<&[u8]> {
@ -350,8 +350,8 @@ impl TableSegment for MutableTable {
self.entries.len() self.entries.len()
} }
fn segment_parent_file(&self) -> &Option<Arc<ReadonlyTable>> { fn segment_parent_file(&self) -> Option<&Arc<ReadonlyTable>> {
&self.parent_file self.parent_file.as_ref()
} }
fn segment_get_value(&self, key: &[u8]) -> Option<&[u8]> { fn segment_get_value(&self, key: &[u8]) -> Option<&[u8]> {