Split monolithic files into modular architecture: - ui/messages.rs (893→365 lines): extract modals/, compose_bar.rs - tdlib/messages.rs (836→3 files): split into messages/mod, convert, operations - config/mod.rs (642→3 files): extract validation.rs, loader.rs - Code duplication cleanup: shared components, ~220 lines removed - Documentation: PROJECT_STRUCTURE.md rewrite, 16 files got //! docs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
38 lines
1.6 KiB
Rust
38 lines
1.6 KiB
Rust
//! Application-wide constants (memory limits, timeouts, UI sizes).
|
|
|
|
// ============================================================================
|
|
// Memory Limits
|
|
// ============================================================================
|
|
|
|
/// Максимальное количество сообщений в одном чате (для оптимизации памяти)
|
|
pub const MAX_MESSAGES_IN_CHAT: usize = 500;
|
|
|
|
/// Максимальный размер кэша пользователей (LRU)
|
|
pub const MAX_USER_CACHE_SIZE: usize = 500;
|
|
|
|
/// Максимальное количество чатов для загрузки
|
|
pub const MAX_CHATS: usize = 200;
|
|
|
|
/// Максимальное количество user_ids для хранения в чате
|
|
pub const MAX_CHAT_USER_IDS: usize = 500;
|
|
|
|
// ============================================================================
|
|
// Performance
|
|
// ============================================================================
|
|
|
|
/// Таймаут poll для event loop (16ms = 60 FPS)
|
|
pub const POLL_TIMEOUT_MS: u64 = 16;
|
|
|
|
/// Таймаут ожидания graceful shutdown (в секундах)
|
|
pub const SHUTDOWN_TIMEOUT_SECS: u64 = 2;
|
|
|
|
/// Количество пользователей для ленивой загрузки за один тик
|
|
pub const LAZY_LOAD_USERS_PER_TICK: usize = 5;
|
|
|
|
// ============================================================================
|
|
// TDLib
|
|
// ============================================================================
|
|
|
|
/// Лимит количества сообщений для загрузки через TDLib за раз
|
|
pub const TDLIB_MESSAGE_LIMIT: i32 = 50;
|