pub struct VirtualRowsRenderState {
pub matrix: Arc<VirtualRowMatrix>,
pub pane_matrices: Arc<HashMap<PaneId, Arc<ArcSwap<VirtualRowMatrix>>>>,
}Expand description
D.3.b.1 (2026-05-29): renderer-side projection of the
virtual-rows worker’s published VirtualRowMatrix.
Carries the matrix so the TUI / GPUI renderer can
interleave virtual rows between document rows when
painting visible content.
matrix defaults to an empty VirtualRowMatrix so the
renderer never has to handle an Option; an empty matrix
reports no rows for any line.
Fields§
§matrix: Arc<VirtualRowMatrix>§pane_matrices: Arc<HashMap<PaneId, Arc<ArcSwap<VirtualRowMatrix>>>>D.4.d.2.1.d (2026-05-30): PaneId → virtual-rows matrix
lookup derived from CellsRenderState::panes at publish
time so renderers can find a pane’s virtual-rows matrix
by id without scanning the panes slice. One entry per
visible Document leaf; non-Document panes are absent
(the publisher filters them out of
CellsRenderState::panes). Mirror of
CellsRenderState::pane_matrices.
Use Self::matrix_for_pane for the read; direct
access to the map is fine when batching multiple
lookups.
Implementations§
Source§impl VirtualRowsRenderState
impl VirtualRowsRenderState
Sourcepub fn matrix_for_pane(
&self,
pane_id: PaneId,
) -> Option<&Arc<ArcSwap<VirtualRowMatrix>>>
pub fn matrix_for_pane( &self, pane_id: PaneId, ) -> Option<&Arc<ArcSwap<VirtualRowMatrix>>>
D.4.d.2.1.d: look up the virtual-rows matrix cell for
pane_id. Returns None when the pane is not a Document
leaf (file tree / help / messages / oil / terminal panes
skip the cells path entirely, so they’re absent from
pane_matrices — see
crate::dispatch::Editor::build_cells_panes). Mirror of
CellsRenderState::matrix_for_pane.
Trait Implementations§
Source§impl Clone for VirtualRowsRenderState
impl Clone for VirtualRowsRenderState
Source§fn clone(&self) -> VirtualRowsRenderState
fn clone(&self) -> VirtualRowsRenderState
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 VirtualRowsRenderState
impl Debug for VirtualRowsRenderState
Auto Trait Implementations§
impl Freeze for VirtualRowsRenderState
impl RefUnwindSafe for VirtualRowsRenderState
impl Send for VirtualRowsRenderState
impl Sync for VirtualRowsRenderState
impl Unpin for VirtualRowsRenderState
impl UnsafeUnpin for VirtualRowsRenderState
impl UnwindSafe for VirtualRowsRenderState
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