Introduce the highest_reverse_iter private method

This commit is contained in:
Kerollmops 2021-08-17 10:45:26 +02:00
parent ad0d311f8a
commit 7a5889bc5a
No known key found for this signature in database
GPG Key ID: 92ADA4E935E71FA4

View File

@ -497,6 +497,34 @@ impl<'t> FacetStringIter<'t> {
.map(Right), .map(Right),
} }
} }
fn highest_reverse_iter<X, Y>(
rtxn: &'t heed::RoTxn,
index: &'t Index,
db: Database<X, Y>,
field_id: FieldId,
) -> heed::Result<Either<FacetStringGroupRevRange<'t>, FacetStringLevelZeroRevRange<'t>>> {
let highest_level = Self::highest_level(rtxn, db, field_id)?.unwrap_or(0);
match NonZeroU8::new(highest_level) {
Some(highest_level) => FacetStringGroupRevRange::new(
rtxn,
index.facet_id_string_docids,
field_id,
highest_level,
Unbounded,
Unbounded,
)
.map(Left),
None => FacetStringLevelZeroRevRange::new(
rtxn,
index.facet_id_string_docids,
field_id,
Unbounded,
Unbounded,
)
.map(Right),
}
}
} }
impl<'t> Iterator for FacetStringIter<'t> { impl<'t> Iterator for FacetStringIter<'t> {