//! Application-wide constants (memory limits, timeouts, UI sizes). // ============================================================================ // Memory Limits // ============================================================================ /// Максимальное количество сообщений в одном чате (для оптимизации памяти) #[allow(dead_code)] pub const MAX_MESSAGES_IN_CHAT: usize = 500; /// Максимальный размер кэша пользователей (LRU) #[allow(dead_code)] pub const MAX_USER_CACHE_SIZE: usize = 500; /// Максимальное количество чатов для загрузки #[allow(dead_code)] pub const MAX_CHATS: usize = 200; /// Максимальное количество user_ids для хранения в чате #[allow(dead_code)] 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; /// Количество пользователей для ленивой загрузки за один тик #[allow(dead_code)] pub const LAZY_LOAD_USERS_PER_TICK: usize = 5; // ============================================================================ // TDLib // ============================================================================ /// Лимит количества сообщений для загрузки через TDLib за раз #[allow(dead_code)] pub const TDLIB_MESSAGE_LIMIT: i32 = 50; // ============================================================================ // Images // ============================================================================ /// Максимальная ширина превью изображения (в символах) pub const MAX_IMAGE_WIDTH: u16 = 30; /// Максимальная высота превью изображения (в строках) pub const MAX_IMAGE_HEIGHT: u16 = 15; /// Минимальная высота превью изображения (в строках) pub const MIN_IMAGE_HEIGHT: u16 = 3; /// Таймаут скачивания файла (в секундах) #[allow(dead_code)] pub const FILE_DOWNLOAD_TIMEOUT_SECS: u64 = 30; /// Размер кэша изображений по умолчанию (в МБ) pub const DEFAULT_IMAGE_CACHE_SIZE_MB: u64 = 500; /// Максимальная ширина inline превью изображений (в символах) #[cfg(feature = "images")] pub const INLINE_IMAGE_MAX_WIDTH: usize = 50; /// Ширина одного фото в альбоме (в символах) #[cfg(feature = "images")] pub const ALBUM_PHOTO_WIDTH: u16 = 16; /// Высота одного фото в альбоме (в строках) #[cfg(feature = "images")] pub const ALBUM_PHOTO_HEIGHT: u16 = 8; /// Отступ между фото в альбоме (в символах) #[cfg(feature = "images")] pub const ALBUM_PHOTO_GAP: u16 = 1; /// Максимальное количество фото в одном ряду альбома #[cfg(feature = "images")] pub const ALBUM_GRID_MAX_COLS: usize = 3; // ============================================================================ // Audio // ============================================================================ /// Размер кэша голосовых сообщений по умолчанию (в МБ) pub const DEFAULT_AUDIO_CACHE_SIZE_MB: u64 = 100;