Struct crokey::Combiner

source ·
pub struct Combiner { /* private fields */ }
Expand description

Consumes key events and combines them into key combinations.

See the print_key_events example.

Implementations§

source§

impl Combiner

source

pub fn enable_combining(&mut self) -> Result<bool>

Try to enable combining more than one non-modifier key into a combination.

Return Ok(false) when the terminal doesn’t support the kitty protocol.

Behind the scene, this function pushes the keyboard enhancement flags to the terminal. The flags are popped, and the normal state of the terminal restored, when the Combiner is dropped.

This function does nothing if combining is already enabled.

source

pub fn disable_combining(&mut self) -> Result<()>

Disable combining.

source

pub fn set_keyboard_enhancement_flags_externally_managed(&mut self)

Tell the Combiner not to push/pop the keyboard enhancement flags.

Call before enable_combining if you want to manage the flags yourself. (for example: if you need to use stderr instead of stdout in crossterm::execute!)

source

pub fn is_combining(&self) -> bool

source

pub fn set_mandate_modifier_for_multiple_keys(&mut self, mandate: bool)

When combining is enabled, you may either want “simple” keys (i.e. without modifier or space) to be handled on key press, or to wait for a key release so that maybe they may be part of a combination like ‘a-b’. If combinations without modifier or space are unlikely in your application, you may make it feel snappier by setting this to true.

This setting has no effect when combining isn’t enabled.

source

pub fn transform(&mut self, key: KeyEvent) -> Option<KeyCombination>

Receive a key event and return a key combination if one is ready.

When combining is enabled, the key combination is only returned on a key release event.

Trait Implementations§

source§

impl Debug for Combiner

source§

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

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

impl Default for Combiner

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Drop for Combiner

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

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

§

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

§

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.