pub struct StaticOverlayQuads {
pub quads: Arc<[Vec<RowOverlayQuad>]>,
pub computed_for_key: VisibleHighlightsKey,
}Expand description
Perf plan B.2: worker-published per-row pre-bucketed static-overlay quads for the active pane’s visible window.
quads[i] is the per-row tagged quad list for visible line
i (i.e. doc line scroll + i). Each entry tags its overlay
layer (OverlayLayer) so the renderer can interleave
cursor-coupled layers (current_match, visual_range) in
the right precedence order at prepaint time.
Active-pane only — inactive panes keep the legacy per-frame
bucket path. The cell is published on every overlay-worker
recompute and invalidates on its own axis
(VisibleHighlightsKey::static_overlay_version) so a
search-query bump re-buckets without touching unrelated state.
Fields§
§quads: Arc<[Vec<RowOverlayQuad>]>Arc<[T]> per the D.1 pattern — HOLD / partial-reuse
paths bump the outer Arc instead of cloning the per-row
Vecs. Typical viewport (120 rows) × typical quads/row
(≤ a few per layer) keeps this comfortably small.
computed_for_key: VisibleHighlightsKeyTrait Implementations§
Source§impl Clone for StaticOverlayQuads
impl Clone for StaticOverlayQuads
Source§fn clone(&self) -> StaticOverlayQuads
fn clone(&self) -> StaticOverlayQuads
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for StaticOverlayQuads
impl Debug for StaticOverlayQuads
Auto Trait Implementations§
impl Freeze for StaticOverlayQuads
impl RefUnwindSafe for StaticOverlayQuads
impl Send for StaticOverlayQuads
impl Sync for StaticOverlayQuads
impl Unpin for StaticOverlayQuads
impl UnsafeUnpin for StaticOverlayQuads
impl UnwindSafe for StaticOverlayQuads
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for 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> ⓘ
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