#![warn(missing_debug_implementations)]
#![allow(dead_code)]
pub use crossbeam_channel::{RecvError, RecvTimeoutError, TryRecvError};
mod error;
mod event;
mod key;
mod log;
mod platform;
mod tap;
#[cfg(feature = "chord")]
pub mod chord;
pub use error::Error;
pub use event::{Event, EventKind};
pub use key::{Key, RawCode};
pub use tap::{Tap, TapBuilder, TapIter};
#[allow(dead_code)]
const fn assert_send_sync<T: Send + Sync>() {}
const _ASSERT_TAP_SEND_SYNC: () = assert_send_sync::<Tap>();
const _ASSERT_EVENT_SEND: () = assert_send_sync::<Event>();
const _ASSERT_KEY_SEND: () = assert_send_sync::<Key>();
const _ASSERT_ERROR_SEND: () = assert_send_sync::<Error>();
#[cfg(feature = "chord")]
const _ASSERT_CHORD_MATCHER_SEND_SYNC: () = assert_send_sync::<chord::ChordMatcher<&'static str>>();
#[cfg(feature = "chord")]
const _ASSERT_CHORD_SEND: () = assert_send_sync::<chord::Chord>();
#[cfg(feature = "chord")]
const _ASSERT_CHORD_MODE_SEND: () = assert_send_sync::<chord::ChordMode>();