#![cfg_attr(allow_unknown_lints, allow(unknown_lints))]
#![cfg_attr(allow_unknown_lints, allow(renamed_and_removed_lints))]
#![deny(
future_incompatible,
nonstandard_style,
rust_2018_compatibility,
rust_2018_idioms,
rust_2021_compatibility,
unused,
warnings
)]
#![deny(
absolute_paths_not_starting_with_crate,
deprecated_in_future,
elided_lifetimes_in_paths,
explicit_outlives_requirements,
ffi_unwind_calls,
keyword_idents,
let_underscore_drop,
macro_use_extern_crate,
meta_variable_misuse,
missing_abi,
missing_copy_implementations,
missing_debug_implementations,
missing_docs,
non_ascii_idents,
noop_method_call,
pointer_structural_match,
rust_2021_incompatible_closure_captures,
rust_2021_incompatible_or_patterns,
rust_2021_prefixes_incompatible_syntax,
rust_2021_prelude_collisions,
single_use_lifetimes,
trivial_casts,
trivial_numeric_casts,
unreachable_pub,
unsafe_code,
unsafe_op_in_unsafe_fn,
unused_crate_dependencies,
unused_extern_crates,
unused_import_braces,
unused_lifetimes,
unused_macro_rules,
unused_qualifications,
unused_results,
unused_tuple_struct_fields,
variant_size_differences
)]
#![deny(clippy::all, clippy::cargo, clippy::pedantic, clippy::restriction)]
#![cfg_attr(include_nightly_lints, deny(clippy::nursery))]
#![allow(
clippy::arithmetic_side_effects,
clippy::arithmetic_side_effects,
clippy::blanket_clippy_restriction_lints,
clippy::bool_to_int_with_if,
clippy::default_numeric_fallback,
clippy::else_if_without_else,
clippy::expect_used,
clippy::float_arithmetic,
clippy::implicit_return,
clippy::indexing_slicing,
clippy::map_err_ignore,
clippy::missing_docs_in_private_items,
clippy::missing_trait_methods,
clippy::mod_module_files,
clippy::module_name_repetitions,
clippy::new_without_default,
clippy::non_ascii_literal,
clippy::option_if_let_else,
clippy::pub_use,
clippy::question_mark_used,
clippy::redundant_pub_crate,
clippy::ref_patterns,
clippy::std_instead_of_alloc,
clippy::std_instead_of_core,
clippy::tabs_in_doc_comments,
clippy::tests_outside_test_module,
clippy::too_many_lines,
clippy::unwrap_used
)]
#![deny(
rustdoc::bare_urls,
rustdoc::broken_intra_doc_links,
rustdoc::invalid_codeblock_attributes,
rustdoc::invalid_html_tags,
rustdoc::missing_crate_level_docs,
rustdoc::private_doc_tests,
rustdoc::private_intra_doc_links
)]
#![cfg_attr(
test,
allow(
let_underscore_drop,
clippy::cognitive_complexity,
clippy::let_underscore_must_use,
clippy::let_underscore_untyped,
clippy::needless_pass_by_value,
clippy::panic,
clippy::shadow_reuse,
clippy::shadow_unrelated,
clippy::undocumented_unsafe_blocks,
clippy::unimplemented,
clippy::unreachable
)
)]
#![cfg_attr(
include_nightly_lints,
allow(
clippy::arc_with_non_send_sync,
clippy::min_ident_chars,
clippy::needless_raw_strings,
clippy::pub_with_shorthand,
clippy::redundant_closure_call,
clippy::single_call_fn
)
)]
mod custom_event;
mod custom_key_binding;
mod event;
mod event_handler;
mod event_provider;
mod input_options;
mod key_bindings;
mod key_event;
mod standard_event;
#[cfg(not(tarpaulin_include))]
pub mod testutil;
mod thread;
pub use crossterm::event::{Event as RawEvent, KeyCode, KeyModifiers, MouseEvent, MouseEventKind};
pub use self::{
custom_event::CustomEvent,
custom_key_binding::CustomKeybinding,
event::Event,
event_handler::EventHandler,
event_provider::{read_event, EventReaderFn},
input_options::InputOptions,
key_bindings::{map_keybindings, KeyBindings},
key_event::KeyEvent,
standard_event::StandardEvent,
thread::{State, Thread, THREAD_NAME},
};