// The keydr library. This holds ALL application code, including the TUI
// event loop and rendering (`run`), so that everything is compiled exactly
// once. src/main.rs is a thin wrapper that just calls `run()`.
//
// Previously main.rs re-declared this same module tree, making the binary a
// second independent crate: every module -- and the whole rust-i18n
// translation table generated by `i18n!` -- was compiled twice.
#![allow(dead_code)]

rust_i18n::i18n!("locales", fallback = "en");

// Public: used by the binary, benchmarks, and generate_test_profiles.
pub mod config;
pub mod engine;
pub mod keyboard;
pub mod l10n;
pub mod session;
pub mod store;

// Internal to the application, but `run` needs them.
mod app;
mod event;
mod generator;
mod i18n;
mod run;
mod ui;

pub use run::run;
