pub struct PaneId(pub u32);Expand description
Process-monotonic pane id. Distinct from BufferId: a pane
holds a buffer + viewport, but two panes can show the same
buffer. Allocated by PaneId::next at split time.
Tuple Fields§
§0: u32Implementations§
Source§impl PaneId
impl PaneId
Sourcepub const POPUP: PaneId
pub const POPUP: PaneId
Reserved synthetic id for the floating-popup
“pane”. The floating help popup is an overlay, not a pane-tree
leaf, so the cells worker has no leaf to key its DisplayMatrix
on. build_cells_panes registers the popup buffer under this
sentinel id so BOTH popup states route through the shared
compose_pane_lines reading a real matrix (Fork 1, popup
unification). next() allocates from 1 upward and never reaches
u32::MAX, so the sentinel can never collide with a real leaf.
Slice: PU.1b-3.
Sourcepub const COMPLETION_DOCS: PaneId
pub const COMPLETION_DOCS: PaneId
Reserved synthetic id for the Insert-mode completion-docs
side popup — a SECOND simultaneous overlay (it coexists with the
candidate list and, if open, the floating Self::POPUP). Like
POPUP it is not a pane-tree leaf, so build_cells_panes
registers its ephemeral backing buffer under this sentinel so the
docs content routes through the same compose_pane_lines seam.
u32::MAX - 1 — still far above any next()-allocated leaf.
Slice: PU.5.
Sourcepub const MINIBUFFER_BAND: PaneId
pub const MINIBUFFER_BAND: PaneId
Reserved synthetic id for the minibuffer BAND — the advisory
surface below all panes (which-key’s grid). A THIRD simultaneous
overlay: it coexists with Self::POPUP by design, which is the whole
point of the band. A popup and a band are different mechanisms — the
popup slot is exclusive and the user asked for what is in it, while the
band is advisory and timer-driven — so sharing one slot meant the band
evicted whatever the user had open. u32::MAX - 2, still far above any
next()-allocated leaf.
Slice: WK.12.
Trait Implementations§
impl Copy for PaneId
impl Eq for PaneId
impl StructuralPartialEq for PaneId
Auto Trait Implementations§
impl Freeze for PaneId
impl RefUnwindSafe for PaneId
impl Send for PaneId
impl Sync for PaneId
impl Unpin for PaneId
impl UnsafeUnpin for PaneId
impl UnwindSafe for PaneId
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§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