Split core and TUI crates
This commit is contained in:
90
crates/tele-tui/src/constants.rs
Normal file
90
crates/tele-tui/src/constants.rs
Normal file
@@ -0,0 +1,90 @@
|
||||
//! 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;
|
||||
Reference in New Issue
Block a user