1pub mod app_state;
7pub mod config_editor;
8pub mod main_vertical_pane;
9pub mod modal;
10pub mod types;
11
12pub use app_state::AppState;
14pub use config_editor::{
15 ConfigEditorFocus, ConfigEditorSearchFocus, ConfigEditorState, ConfigEditorView, EditPopupKind,
16 EditPopupState,
17};
18pub use main_vertical_pane::{
19 DEFAULT_MAIN_PANE_ORDER, MainVerticalPane, VerticalLayoutLimits, format_main_pane_order,
20 parse_main_pane_order,
21};
22pub use modal::{Modal, PreflightAction, PreflightTab, SshSetupStep};
23pub use types::{
24 ArchStatusColor, Focus, InstalledPackagesMode, NewsItem, PackageDetails, PackageItem,
25 PkgbuildCheckRequest, PkgbuildCheckResponse, QueryInput, RightPaneFocus, SearchResults,
26 SecureString, SortMode, Source,
27};
28
29#[cfg(test)]
30static TEST_MUTEX: std::sync::OnceLock<std::sync::Mutex<()>> = std::sync::OnceLock::new();
31
32#[cfg(test)]
33pub(crate) fn test_mutex() -> &'static std::sync::Mutex<()> {
42 TEST_MUTEX.get_or_init(|| std::sync::Mutex::new(()))
43}