Skip to main content

PaneCapabilityMatrix

Struct PaneCapabilityMatrix 

Source
pub struct PaneCapabilityMatrix {
    pub mux: PaneMuxEnvironment,
    pub mouse_sgr: bool,
    pub mouse_drag_reliable: bool,
    pub mouse_button_discrimination: bool,
    pub focus_events: bool,
    pub bracketed_paste: bool,
    pub unicode_box_drawing: bool,
    pub true_color: bool,
    pub degraded: bool,
}
Expand description

Resolved capability matrix describing which pane interaction features are available in the current terminal + multiplexer environment.

Derived from [TerminalCapabilities] via PaneCapabilityMatrix::from_capabilities. The adapter uses this to decide which code-paths are safe and which need deterministic fallbacks.

Fields§

§mux: PaneMuxEnvironment

Detected multiplexer environment.

§mouse_sgr: bool

SGR (1006) extended mouse protocol available. Without this, mouse coordinates are limited to 223 columns/rows.

§mouse_drag_reliable: bool

Mouse drag events are reliably delivered. False in some screen versions where drag tracking is incomplete.

§mouse_button_discrimination: bool

Mouse button events include correct button identity on release. X10/normal mode sends button 3 for all releases; SGR preserves it.

§focus_events: bool

Terminal delivers CSI I / CSI O focus events.

§bracketed_paste: bool

Bracketed paste mode available (affects interaction cancel heuristics).

§unicode_box_drawing: bool

Unicode box-drawing glyphs available for splitter rendering.

§true_color: bool

True-color support for splitter highlight/drag feedback.

§degraded: bool

One or more pane features are degraded due to environment constraints.

Implementations§

Source§

impl PaneCapabilityMatrix

Source

pub fn from_capabilities(caps: &TerminalCapabilities) -> Self

Derive the pane capability matrix from terminal capabilities.

This is the single source of truth for which pane features are available. All fallback decisions flow from this matrix.

Source

pub const fn drag_enabled(&self) -> bool

Whether pane drag interactions should be enabled at all.

Drag requires at minimum mouse event support. If drag events are unreliable (e.g. GNU Screen), drag is disabled and the adapter falls back to keyboard-only resize.

Source

pub const fn focus_cancel_effective(&self) -> bool

Whether focus-loss auto-cancel is effective.

When focus events are unavailable, the adapter cannot detect window blur — interactions must rely on timeout or explicit keyboard cancel instead.

Source

pub fn limitations(&self) -> Vec<PaneCapabilityLimitation>

Collect all active limitations with their fallback descriptions.

Trait Implementations§

Source§

impl Clone for PaneCapabilityMatrix

Source§

fn clone(&self) -> PaneCapabilityMatrix

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PaneCapabilityMatrix

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for PaneCapabilityMatrix

Source§

fn eq(&self, other: &PaneCapabilityMatrix) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for PaneCapabilityMatrix

Source§

impl Eq for PaneCapabilityMatrix

Source§

impl StructuralPartialEq for PaneCapabilityMatrix

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more