pub struct StreamingSelector { /* private fields */ }
Expand description
Streaming file selector with heap-based optimization
Implementations§
Source§impl StreamingSelector
impl StreamingSelector
Sourcepub fn new(config: StreamingConfig) -> Self
pub fn new(config: StreamingConfig) -> Self
Create new streaming selector
Sourcepub fn with_defaults() -> Self
pub fn with_defaults() -> Self
Create with default configuration
Sourcepub async fn select_files_streaming(
&self,
repo_path: &Path,
target_count: usize,
token_budget: usize,
score_fn: impl Fn(&FileMetadata) -> f64 + Send + Sync + 'static,
token_fn: impl Fn(&FileMetadata) -> usize + Send + Sync + 'static,
) -> ScalingResult<Vec<ScoredFile>>
pub async fn select_files_streaming( &self, repo_path: &Path, target_count: usize, token_budget: usize, score_fn: impl Fn(&FileMetadata) -> f64 + Send + Sync + 'static, token_fn: impl Fn(&FileMetadata) -> usize + Send + Sync + 'static, ) -> ScalingResult<Vec<ScoredFile>>
Stream files from directory with intelligent selection
This uses O(N log K) complexity instead of O(N log N) where:
- N = total files in repository
- K = target number of files to select
Auto Trait Implementations§
impl Freeze for StreamingSelector
impl RefUnwindSafe for StreamingSelector
impl Send for StreamingSelector
impl Sync for StreamingSelector
impl Unpin for StreamingSelector
impl UnwindSafe for StreamingSelector
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> 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