pub struct Scheduler { /* private fields */ }Expand description
The resource-aware scheduler (RFC-036 §5–§16).
Implementations§
Source§impl Scheduler
impl Scheduler
pub fn new(config: SchedulerConfig) -> Self
pub fn with_defaults() -> Self
Sourcepub fn notify_user_active(&mut self)
pub fn notify_user_active(&mut self)
Notify the scheduler that the user is actively searching or typing. Background embedding will yield (RFC-036 §13.1).
Sourcepub fn notify_user_idle(&mut self)
pub fn notify_user_idle(&mut self)
Notify the scheduler that user activity has subsided.
pub fn resource_mode(&self) -> ResourceMode
Sourcepub fn pause(&mut self, catalog: &Catalog) -> OrbokResult<()>
pub fn pause(&mut self, catalog: &Catalog) -> OrbokResult<()>
Pause all background work (RFC-036 §12.1–§12.2). In-flight jobs finish their current small unit; no new jobs start.
Sourcepub fn resume(&mut self, catalog: &Catalog) -> OrbokResult<()>
pub fn resume(&mut self, catalog: &Catalog) -> OrbokResult<()>
Resume background work after a pause (RFC-036 §12.2).
Sourcepub fn cancel_source(
&mut self,
source_id: &SourceId,
catalog: &Catalog,
) -> OrbokResult<usize>
pub fn cancel_source( &mut self, source_id: &SourceId, catalog: &Catalog, ) -> OrbokResult<usize>
Cancel all queued work for a source (RFC-036 §12.3). Called when the user removes a folder.
Sourcepub fn enqueue(&mut self, job: IndexJob, catalog: &Catalog) -> OrbokResult<()>
pub fn enqueue(&mut self, job: IndexJob, catalog: &Catalog) -> OrbokResult<()>
Submit a job to the appropriate bounded queue (RFC-036 §7).
Returns Err with a BackpressureActive variant if the target
queue is full — the caller must wait and retry rather than
allocating unbounded memory (RFC-036 §10.2).
Sourcepub fn tick(&mut self) -> Option<IndexJob>
pub fn tick(&mut self) -> Option<IndexJob>
Dispatch one job from the queues (RFC-036 §8, §9).
Returns the job to run, or None when paused or all queues are
empty. The caller executes the job and reports back via
complete or fail.
Sourcepub fn complete(&mut self, job_id: &JobId, catalog: &Catalog) -> OrbokResult<()>
pub fn complete(&mut self, job_id: &JobId, catalog: &Catalog) -> OrbokResult<()>
Mark a job as successfully completed (RFC-036 §11).
Sourcepub fn fail(
&mut self,
job: IndexJob,
error_kind: &str,
catalog: &Catalog,
) -> OrbokResult<()>
pub fn fail( &mut self, job: IndexJob, error_kind: &str, catalog: &Catalog, ) -> OrbokResult<()>
Mark a job as failed; retry if under the attempt limit (RFC-036 §11).
pub fn pending_count(&self) -> usize
pub fn completed_count(&self) -> u64
pub fn failed_count(&self) -> u64
pub fn is_idle(&self) -> bool
Sourcepub fn drain_events(&mut self) -> Vec<SchedulerEvent>
pub fn drain_events(&mut self) -> Vec<SchedulerEvent>
Take all accumulated events since the last call. The UI layer calls this on each frame to update progress copy.
Auto Trait Implementations§
impl Freeze for Scheduler
impl RefUnwindSafe for Scheduler
impl Send for Scheduler
impl Sync for Scheduler
impl Unpin for Scheduler
impl UnsafeUnpin for Scheduler
impl UnwindSafe for Scheduler
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
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>
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>
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