remove offset newtype
This commit is contained in:
parent
1e4f7189a5
commit
f136235205
1 changed files with 7 additions and 39 deletions
46
src/file.rs
46
src/file.rs
|
@ -391,38 +391,6 @@ struct EntryData {
|
||||||
offset_index: usize,
|
offset_index: usize,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
|
|
||||||
enum Offset {
|
|
||||||
NonSignificant(usize),
|
|
||||||
Significant(usize),
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Offset {
|
|
||||||
const fn len(&self) -> usize {
|
|
||||||
match self {
|
|
||||||
Self::NonSignificant(v) | Self::Significant(v) => *v,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Deref for Offset {
|
|
||||||
type Target = usize;
|
|
||||||
|
|
||||||
fn deref(&self) -> &Self::Target {
|
|
||||||
match self {
|
|
||||||
Self::NonSignificant(v) | Self::Significant(v) => v,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl DerefMut for Offset {
|
|
||||||
fn deref_mut(&mut self) -> &mut Self::Target {
|
|
||||||
match self {
|
|
||||||
Self::NonSignificant(v) | Self::Significant(v) => v,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// An intermediate representation of a mutable multivar obtained from
|
/// An intermediate representation of a mutable multivar obtained from
|
||||||
/// [`GitConfig`].
|
/// [`GitConfig`].
|
||||||
///
|
///
|
||||||
|
@ -441,7 +409,7 @@ pub struct MutableMultiValue<'borrow, 'lookup, 'event> {
|
||||||
/// Each offset represents the size of a event slice and whether or not the
|
/// Each offset represents the size of a event slice and whether or not the
|
||||||
/// event slice is significant or not. This is used to index into the
|
/// event slice is significant or not. This is used to index into the
|
||||||
/// actual section.
|
/// actual section.
|
||||||
offsets: HashMap<SectionId, Vec<Offset>>,
|
offsets: HashMap<SectionId, Vec<usize>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'lookup, 'event> MutableMultiValue<'_, 'lookup, 'event> {
|
impl<'lookup, 'event> MutableMultiValue<'_, 'lookup, 'event> {
|
||||||
|
@ -625,7 +593,7 @@ impl<'lookup, 'event> MutableMultiValue<'_, 'lookup, 'event> {
|
||||||
|
|
||||||
fn set_value_inner<'a: 'event>(
|
fn set_value_inner<'a: 'event>(
|
||||||
key: &Key<'lookup>,
|
key: &Key<'lookup>,
|
||||||
offsets: &mut HashMap<SectionId, Vec<Offset>>,
|
offsets: &mut HashMap<SectionId, Vec<usize>>,
|
||||||
section: &mut OwnedSection<'event>,
|
section: &mut OwnedSection<'event>,
|
||||||
section_id: SectionId,
|
section_id: SectionId,
|
||||||
offset_index: usize,
|
offset_index: usize,
|
||||||
|
@ -693,7 +661,7 @@ impl<'lookup, 'event> MutableMultiValue<'_, 'lookup, 'event> {
|
||||||
// SectionId is the same size as a reference, which means it's just as
|
// SectionId is the same size as a reference, which means it's just as
|
||||||
// efficient passing in a value instead of a reference.
|
// efficient passing in a value instead of a reference.
|
||||||
fn get_index_and_size(
|
fn get_index_and_size(
|
||||||
offsets: &'lookup HashMap<SectionId, Vec<Offset>>,
|
offsets: &'lookup HashMap<SectionId, Vec<usize>>,
|
||||||
section_id: SectionId,
|
section_id: SectionId,
|
||||||
offset_index: usize,
|
offset_index: usize,
|
||||||
) -> (usize, usize) {
|
) -> (usize, usize) {
|
||||||
|
@ -702,7 +670,7 @@ impl<'lookup, 'event> MutableMultiValue<'_, 'lookup, 'event> {
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.iter()
|
.iter()
|
||||||
.take(offset_index + 1)
|
.take(offset_index + 1)
|
||||||
.fold((0, 0), |(old, new), offset| (old + new, offset.len()))
|
.fold((0, 0), |(old, new), offset| (old + new, *offset))
|
||||||
}
|
}
|
||||||
|
|
||||||
// This must be an associated function rather than a method to allow Rust
|
// This must be an associated function rather than a method to allow Rust
|
||||||
|
@ -711,7 +679,7 @@ impl<'lookup, 'event> MutableMultiValue<'_, 'lookup, 'event> {
|
||||||
// SectionId is the same size as a reference, which means it's just as
|
// SectionId is the same size as a reference, which means it's just as
|
||||||
// efficient passing in a value instead of a reference.
|
// efficient passing in a value instead of a reference.
|
||||||
fn set_offset(
|
fn set_offset(
|
||||||
offsets: &mut HashMap<SectionId, Vec<Offset>>,
|
offsets: &mut HashMap<SectionId, Vec<usize>>,
|
||||||
section_id: SectionId,
|
section_id: SectionId,
|
||||||
offset_index: usize,
|
offset_index: usize,
|
||||||
value: usize,
|
value: usize,
|
||||||
|
@ -1252,7 +1220,7 @@ impl<'event> GitConfig<'event> {
|
||||||
match event {
|
match event {
|
||||||
Event::Key(event_key) if *event_key == key => {
|
Event::Key(event_key) if *event_key == key => {
|
||||||
found_key = true;
|
found_key = true;
|
||||||
offset_list.push(Offset::NonSignificant(i - last_boundary));
|
offset_list.push(i - last_boundary);
|
||||||
offset_index += 1;
|
offset_index += 1;
|
||||||
last_boundary = i;
|
last_boundary = i;
|
||||||
}
|
}
|
||||||
|
@ -1262,7 +1230,7 @@ impl<'event> GitConfig<'event> {
|
||||||
section_id: *section_id,
|
section_id: *section_id,
|
||||||
offset_index,
|
offset_index,
|
||||||
});
|
});
|
||||||
offset_list.push(Offset::Significant(i - last_boundary + 1));
|
offset_list.push(i - last_boundary + 1);
|
||||||
offset_index += 1;
|
offset_index += 1;
|
||||||
last_boundary = i + 1;
|
last_boundary = i + 1;
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue