Skip to main content

ProgressTracker

Struct ProgressTracker 

Source
pub struct ProgressTracker { /* private fields */ }
Expand description

Tracks and displays progress for indexing operations

Thread-safe progress tracker that can be shared across threads. Uses atomic counters for file/chunk counts and throttling to prevent output flooding.

Implementations§

Source§

impl ProgressTracker

Source

pub fn new(mode: OutputMode) -> Self

Create a new progress tracker

§Arguments
  • mode - Output mode (Minimal or Verbose)
§Examples
use maproom::progress::{ProgressTracker, OutputMode};

let tracker = ProgressTracker::new(OutputMode::Minimal);
Source

pub fn set_totals(&self, files: usize, chunks: Option<usize>)

Set total file and chunk counts

§Arguments
  • files - Total number of files to process
  • chunks - Optional total number of chunks (embeddings)
Source

pub fn update_files(&self, count: usize)

Update the count of processed files

§Arguments
  • count - New count of processed files
Source

pub fn update_chunks(&self, count: usize)

Update the count of processed chunks

§Arguments
  • count - New count of processed chunks
Source

pub fn should_print(&self) -> bool

Check if progress should be printed

Returns true if more than 200ms has elapsed since last print, preventing output flooding.

The first call always returns true to allow initial progress display.

Source

pub fn print_progress(&self)

Print current progress

Format depends on TTY status and output mode:

  • Json: Outputs NDJSON progress events
  • TTY: Overwrites line with \r
  • Non-TTY: Prints new line every 10% progress
Source

pub fn finish(&self)

Print final timing summary

Prints completion message with total elapsed time. In JSON mode, emits a complete event.

Source

pub fn files_processed(&self) -> usize

Get the current count of processed files

Returns the number of files that have been processed so far. This can be used for statistics collection after scanning completes.

§Example
use maproom::progress::{ProgressTracker, OutputMode};

let tracker = ProgressTracker::new(OutputMode::Minimal);
tracker.update_files(42);
assert_eq!(tracker.files_processed(), 42);
Source

pub fn chunks_processed(&self) -> usize

Get the current count of processed chunks

Returns the number of code chunks that have been processed so far. This can be used for statistics collection after scanning completes.

§Example
use maproom::progress::{ProgressTracker, OutputMode};

let tracker = ProgressTracker::new(OutputMode::Minimal);
tracker.update_chunks(100);
assert_eq!(tracker.chunks_processed(), 100);
Source

pub fn is_json_mode(&self) -> bool

Check if the tracker is in JSON output mode

Returns true if the tracker was created with OutputMode::Json, which is used by the VSCode extension for programmatic consumption.

§Example
use maproom::progress::{ProgressTracker, OutputMode};

let json_tracker = ProgressTracker::new(OutputMode::Json);
assert!(json_tracker.is_json_mode());

let normal_tracker = ProgressTracker::new(OutputMode::Minimal);
assert!(!normal_tracker.is_json_mode());

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more