pub struct BlameProvider { /* private fields */ }Expand description
One virtual row above each blame chunk.
No work per frame. collect hands back rows built once, when a
blame run landed — the cells worker calls it on every rebuild, and
re-chunking or re-formatting there would be exactly the UI-thread
work paramount goal #1 forbids. Colours are resolved in collect,
which is one read-lock plus an ArcSwap load and is what
MagitHeaderline::render already does, so a :colorscheme repaints
the headings instead of leaving them on the old palette.
Trait Implementations§
Source§impl Debug for BlameProvider
ThemeRegistryHandle is not Debug, and the provider trait wants
it — so the interesting state is printed and the handle is not.
impl Debug for BlameProvider
ThemeRegistryHandle is not Debug, and the provider trait wants
it — so the interesting state is printed and the handle is not.
Source§impl VirtualRowProvider for BlameProvider
impl VirtualRowProvider for BlameProvider
Source§fn id(&self) -> ProviderId
fn id(&self) -> ProviderId
A stable id for this provider. Used by the worker to
deduplicate registration + route mutation
notifications.
Source§fn version(&self) -> u64
fn version(&self) -> u64
Monotonic version counter — the provider bumps it
whenever the rows [
Self::collect] would emit have
changed. The worker uses the combined fingerprint of all
providers’ versions to short-circuit on the cache-hit
path without paying for the (potentially expensive)
collect calls. Read moreAuto Trait Implementations§
impl !Freeze for BlameProvider
impl !RefUnwindSafe for BlameProvider
impl !UnwindSafe for BlameProvider
impl Send for BlameProvider
impl Sync for BlameProvider
impl Unpin for BlameProvider
impl UnsafeUnpin for BlameProvider
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> 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