docs: complete rustdoc documentation for all public APIs (P4.12)

Added comprehensive rustdoc documentation for all TDLib modules,
configuration, and utility functions.

TDLib modules documented:
- src/tdlib/auth.rs - AuthManager, AuthState (6 doctests)
- src/tdlib/chats.rs - ChatManager (8 doctests)
- src/tdlib/messages.rs - MessageManager (14 methods, 6 doctests)
- src/tdlib/reactions.rs - ReactionManager (3 doctests)
- src/tdlib/users.rs - UserCache, LruCache (2 doctests)

Configuration and utilities:
- src/config.rs - Config, ColorsConfig, GeneralConfig (4 doctests)
- src/formatting.rs - format_text_with_entities (2 doctests)

Documentation includes:
- Detailed descriptions of all public structs and methods
- Usage examples with code snippets
- Parameter and return value documentation
- Notes about async behavior and edge cases
- Cross-references between related functions

Total: 34 doctests (30 ignored for async, 4 compiled)
All 464 unit tests passing 

Priority 4.12 (Rustdoc) - 100% complete

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Mikhail Kilin
2026-02-01 01:03:30 +03:00
parent 326bf6cc46
commit 93e43a59d0
7 changed files with 901 additions and 57 deletions

View File

@@ -70,17 +70,41 @@ fn styles_equal(a: &CharStyle, b: &CharStyle) -> bool {
&& a.mention == b.mention
}
/// Преобразует текст с entities в вектор стилизованных Span
/// Преобразует текст с TDLib entities в стилизованные Span для рендеринга.
///
/// # Аргументы
/// Обрабатывает Markdown форматирование (bold, italic, code и т.д.) и преобразует
/// в визуальные стили для отображения в TUI.
///
/// # Поддерживаемые стили
///
/// - **Bold** - жирный текст
/// - *Italic* - курсив
/// - __Underline__ - подчёркнутый
/// - ~~Strikethrough~~ - зачёркнутый
/// - `Code` - моноширинный текст (cyan на тёмном фоне)
/// - ||Spoiler|| - скрытый текст (серый)
/// - [URL](url) - ссылки (синий с подчёркиванием)
/// - @mentions - упоминания (синий с подчёркиванием)
///
/// # Arguments
///
/// * `text` - Текст для форматирования
/// * `entities` - Массив TextEntity с информацией о форматировании
/// * `base_color` - Базовый цвет текста
/// * `entities` - Массив TDLib TextEntity с информацией о форматировании
/// * `base_color` - Базовый цвет для обычного текста
///
/// # Возвращает
/// # Returns
///
/// Вектор Span<'static> со стилизованными фрагментами текста
/// Вектор стилизованных `Span<'static>` для рендеринга в ratatui.
///
/// # Examples
///
/// ```ignore
/// let spans = format_text_with_entities(
/// "Hello **world**!",
/// &entities,
/// Color::White
/// );
/// ```
pub fn format_text_with_entities(
text: &str,
entities: &[TextEntity],
@@ -178,6 +202,28 @@ pub fn format_text_with_entities(
/// # Возвращает
///
/// Новый массив entities с откорректированными offset и length
/// Корректирует offset entities для подстроки текста.
///
/// Используется при обрезке текста (например, для preview) для сохранения
/// корректных позиций форматирования.
///
/// # Arguments
///
/// * `entities` - Исходный массив entities
/// * `start` - Начальная позиция подстроки (в символах)
/// * `length` - Длина подстроки (в символах)
///
/// # Returns
///
/// Новый массив entities с скорректированными offset для подстроки.
///
/// # Examples
///
/// ```ignore
/// let text = "Hello **world** test";
/// let substring = &text[0..15]; // "Hello **world**"
/// let adjusted = adjust_entities_for_substring(&entities, 0, 15);
/// ```
pub fn adjust_entities_for_substring(
entities: &[TextEntity],
start: usize,