pub struct Sorter { /* private fields */ }Expand description
Sort entries using one of the supported content discovery rankings.
Implementations§
Source§impl Sorter
impl Sorter
pub const fn new(config: SortConfig) -> Self
Sourcepub fn filter_seeders(&self, entries: Vec<SortEntry>) -> Vec<SortEntry>
pub fn filter_seeders(&self, entries: Vec<SortEntry>) -> Vec<SortEntry>
Filter entries by seeders before sorting.
Sourcepub fn enrich_peers(
&self,
entries: &mut [SortEntry],
peer_map: &HashMap<String, usize>,
)
pub fn enrich_peers( &self, entries: &mut [SortEntry], peer_map: &HashMap<String, usize>, )
Populate entry.peers from a path→count map.
Sourcepub fn enrich_niche(&self, entries: &mut [SortEntry])
pub fn enrich_niche(&self, entries: &mut [SortEntry])
Compute entry.niche from entry.peers using config.niche as ideal count.
Formula: 1.0 / (1.0 + |peers - ideal|)
Sourcepub fn enrich_frequency(
&self,
entries: &mut [SortEntry],
freq_map: &HashMap<String, u64>,
)
pub fn enrich_frequency( &self, entries: &mut [SortEntry], freq_map: &HashMap<String, u64>, )
Populate entry.frequency from a path→access-count map.
Sourcepub fn sort<'a>(&'a self, entries: &'a mut [SortEntry]) -> SortResult<'a>
pub fn sort<'a>(&'a self, entries: &'a mut [SortEntry]) -> SortResult<'a>
Sort entries by multiple criteria.
Returns an iterator that yields paths until limit_size is reached.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Sorter
impl RefUnwindSafe for Sorter
impl Send for Sorter
impl Sync for Sorter
impl Unpin for Sorter
impl UnsafeUnpin for Sorter
impl UnwindSafe for Sorter
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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