pub struct RepoIndex { /* private fields */ }Expand description
A searchable, rayon-ready corpus of starred repos with an LRU query cache.
Implementations§
Source§impl RepoIndex
impl RepoIndex
Sourcepub fn new(repos: Vec<Repo>) -> Self
pub fn new(repos: Vec<Repo>) -> Self
Build an index from a vector of repos. Lowercasing happens in parallel.
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
pub fn iter(&self) -> impl Iterator<Item = &Repo>
Sourcepub fn search(
&self,
query: &str,
lang: Option<&str>,
topic: Option<&str>,
limit: usize,
fuzzy: bool,
or_mode: bool,
topic_boost: bool,
semantic: bool,
) -> Vec<SearchHit<'_>>
pub fn search( &self, query: &str, lang: Option<&str>, topic: Option<&str>, limit: usize, fuzzy: bool, or_mode: bool, topic_boost: bool, semantic: bool, ) -> Vec<SearchHit<'_>>
Execute a search against the index.
Behavior:
- Empty
querymatches everything (subject to lang/topic filters). langis matched case-insensitively againstrepo.language.topicis matched case-insensitively against any topic string.- Matching indices are cached in an LRU keyed by
(query, lang, topic). - Ranking runs AFTER cache lookup and is always parallelized via rayon.
- Returned slice is ordered by score descending, truncated to
limit.
Auto Trait Implementations§
impl !Freeze for RepoIndex
impl RefUnwindSafe for RepoIndex
impl Send for RepoIndex
impl Sync for RepoIndex
impl Unpin for RepoIndex
impl UnsafeUnpin for RepoIndex
impl UnwindSafe for RepoIndex
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more