tuiserial_core/lib.rs
1//! Core data models and types for tuiserial
2//!
3//! This crate provides the fundamental data structures, enums, and state management
4//! types used throughout the tuiserial application.
5//!
6//! ## Architecture
7//!
8//! The core is organized into modular components:
9//! - `types`: Basic type definitions and enums (DisplayMode, TxMode, Parity, etc.)
10//! - `notification`: Notification system for user messages
11//! - `log`: Log entries and message log for serial communication
12//! - `config`: Serial port configuration
13//! - `state`: Main application state management
14//! - `i18n`: Internationalization support
15
16// Module declarations
17pub mod config;
18pub mod i18n;
19pub mod log;
20pub mod menu_def;
21pub mod notification;
22pub mod state;
23pub mod types;
24
25// Re-exports for convenience
26pub use config::SerialConfig;
27pub use log::{LogDirection, LogEntry, MessageLog, MAX_LOG_LINES};
28pub use menu_def::{MenuAction, MenuBar, MENU_BAR};
29pub use notification::{Notification, NotificationLevel};
30pub use state::AppState;
31pub use types::{
32 AppendMode, DisplayMode, FlowControl, FocusedField, Language, MenuState, Parity, TxMode,
33};
34
35// Re-export commonly used dependencies
36pub use chrono;
37pub use ratatui;
38pub use serde;
39pub use serde_json;