Skip to main content

KeyAction

Enum KeyAction 

Source
#[non_exhaustive]
pub enum KeyAction { No, Transparent, Single(Action), Tap(Action), TapHold(Action, Action, u8), Morse(u8), }
Expand description

A KeyAction is the action at a keyboard position, stored in keymap. It can be a single action like triggering a key, or a composite keyboard action like tap/hold

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

No

No action

§

Transparent

Transparent action, next layer will be checked

§

Single(Action)

A single action, such as triggering a key, or activating a layer. Action is triggered when pressed and cancelled when released.

§

Tap(Action)

Don’t wait the release of the key, auto-release after a time threshold.

§

TapHold(Action, Action, u8)

Tap hold action. The u8 indexes the morse profile table; an index with no table entry (e.g. u8::MAX, which the default-profile macros emit) falls back to the default crate::morse::MorseProfile.

§

Morse(u8)

Morse action, references a morse configuration by index.

Implementations§

Source§

impl KeyAction

Source

pub fn to_action(self) -> Action

Convert KeyAction to the internal Action. Only valid for Single and Tap variant, returns Action::No for other variants.

Source

pub fn is_morse(&self) -> bool

‘morse’ is an alias for the superset of tap dance and tap hold keys, since their handling have many similarities

Source

pub fn is_empty(&self) -> bool

Trait Implementations§

Source§

impl Clone for KeyAction

Source§

fn clone(&self) -> KeyAction

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for KeyAction

Source§

impl Debug for KeyAction

Source§

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

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

impl<'de> Deserialize<'de> for KeyAction

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for KeyAction

Source§

impl MaxSize for KeyAction

Source§

const POSTCARD_MAX_SIZE: usize

The maximum possible size that the serialization of this type can have, in bytes.
Source§

impl PartialEq for KeyAction

Combo and fork trigger matching compares key actions by their “identity” — the tap/hold actions — ignoring the profile-table index.

This is intentional: a combo or fork may store a trigger with one profile index, but if the user later rebinds the key’s profile, the trigger should still match. The profile is a per-key timing config, not part of the key’s logical identity.

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl Serialize for KeyAction

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. 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> 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<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

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.