Skip to main content

RebindVerdict

Enum RebindVerdict 

Source
#[non_exhaustive]
pub enum RebindVerdict<'a, A> { BreaksReserved { reserved: KeyInput, reason: BreakReason, }, Allowed { shadows: Option<&'a A>, legacy: LegacyForm, }, }
Expand description

What validate_rebind concluded.

This is #[non_exhaustive] so that additive verdicts (e.g. an advisory “allowed but unreachable on legacy terminals”) can be added without breaking callers. Match both arms with an explicit binding for all known fields so the compiler surfaces any future field additions.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

BreaksReserved

Refused. The proposed chord would break the caller’s escape hatch.

Fields

§reserved: KeyInput

The reserved key whose resolution would be stolen.

§reason: BreakReason

The structural reason the rebind is refused.

§

Allowed

Allowed. The rebind does not threaten any reserved key.

Fields

§shadows: Option<&'a A>

The action that proposed currently resolves to via the layer stack, if any. Some(&a) means the rebind would silently override that action in the target layer — worth surfacing in a UI.

§legacy: LegacyForm

How proposed fares on a legacy 7-bit C0 terminal. This is carried here so the caller can surface the legacy story alongside the safety verdict in a single call.

Trait Implementations§

Source§

impl<'a, A: Debug> Debug for RebindVerdict<'a, A>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a, A> Freeze for RebindVerdict<'a, A>

§

impl<'a, A> RefUnwindSafe for RebindVerdict<'a, A>
where A: RefUnwindSafe,

§

impl<'a, A> Send for RebindVerdict<'a, A>
where A: Sync,

§

impl<'a, A> Sync for RebindVerdict<'a, A>
where A: Sync,

§

impl<'a, A> Unpin for RebindVerdict<'a, A>

§

impl<'a, A> UnsafeUnpin for RebindVerdict<'a, A>

§

impl<'a, A> UnwindSafe for RebindVerdict<'a, A>
where A: RefUnwindSafe,

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, 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.