pub struct RegistryProgress { /* private fields */ }Expand description
Progress tracker for registry data fetching.
Owns the LSP progress lifecycle (begin → report → end).
Creates a ProgressSender for non-blocking updates from fetch tasks.
Implementations§
Source§impl RegistryProgress
impl RegistryProgress
Sourcepub async fn start(
client: Client,
uri: &str,
total_deps: usize,
) -> Result<(Self, ProgressSender)>
pub async fn start( client: Client, uri: &str, total_deps: usize, ) -> Result<(Self, ProgressSender)>
Create and start a new progress indicator.
Returns both the progress tracker and a ProgressSender for
non-blocking updates from fetch tasks.
Callers wrap this in a short timeout so a slow/unresponsive client can’t
stall a fetch. If the timeout fires while the create round-trip is
still pending after the request bytes already reached the client, the
client may register a token this call never learns about and therefore
never sends begin/end for. This is an accepted trade-off: no begin
means spec-compliant clients show no UI for it, so the only cost is a
harmless dangling token client-side.
Trait Implementations§
Source§impl Drop for RegistryProgress
Ensure progress is cleaned up on drop
impl Drop for RegistryProgress
Ensure progress is cleaned up on drop
Auto Trait Implementations§
impl !RefUnwindSafe for RegistryProgress
impl !UnwindSafe for RegistryProgress
impl Freeze for RegistryProgress
impl Send for RegistryProgress
impl Sync for RegistryProgress
impl Unpin for RegistryProgress
impl UnsafeUnpin for RegistryProgress
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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