This commit is contained in:
Mikhail Kilin
2026-01-31 01:00:43 +03:00
parent bba5cbd22d
commit 38e73befc1
6 changed files with 188 additions and 8 deletions

View File

@@ -357,7 +357,23 @@ reaction_other = "gray"
- Проще добавлять новые фичи
- Лучше читаемость
**Следующие шаги**: Priority 2 (типобезопасность: Error enum, Newtype для ID)
**Priority 2 (40% завершено - 2/5)**:
-**P2.5 — Error enum** (завершено 2026-01-31)
- Создан `src/error.rs` с типобезопасным enum `TeletuiError`
- Добавлены варианты: TdLib, Config, Network, Auth, Chat, Message, User, InvalidTimezone, InvalidColor, Clipboard, Io, Toml, Json, Other
- Type alias `Result<T>` для упрощения сигнатур
- Использован `thiserror` для автоматического Display
- Заменены все `Result<T, String>` на `Result<T>` в 7 модулях
- Все 350 тестов проходят ✅
-**P2.3 — Config validation** (завершено 2026-01-31)
- Добавлен метод `Config::validate()` для проверки конфигурации
- Валидация timezone: проверка что начинается с + или -
- Валидация цветов: проверка что цвет из списка допустимых (black, red, green, yellow, blue, magenta, cyan, gray, white, darkgray, lightred, lightgreen, lightyellow, lightblue, lightmagenta, lightcyan)
- При загрузке невалидного конфига автоматически используется дефолтный
- Все 350 тестов проходят ✅
**Следующие шаги**: Priority 2 (Newtype для ID, MessageBuilder, реструктуризация MessageInfo)
Подробности: [REFACTORING_ROADMAP.md](REFACTORING_ROADMAP.md)
@@ -374,11 +390,16 @@ reaction_other = "gray"
2. ~~**Разделение TdClient**~~ ✅ — разделён на 7 модулей
3. ~~**Константы**~~ ✅ — вынесены в отдельный модуль
**Завершено** (Priority 2):
1. ~~**Error enum**~~ ✅ — типобезопасная обработка ошибок (2026-01-31)
2. ~~**Config validation**~~ ✅ — валидация конфигурации при загрузке (2026-01-31)
**В работе** (Priority 2-5):
1. **Типобезопасность** — newtype pattern для ID, error enum
2. **UI компоненты** — выделить переиспользуемые компоненты
3. **Форматирование** — вынести markdown форматирование в отдельный модуль
4. **Юнит-тесты** — добавить для utils и других модулей
1. **Типобезопасность** — newtype pattern для ID
2. **MessageBuilder** — упрощение создания сообщений
3. **UI компоненты** — выделить переиспользуемые компоненты
4. **Форматирование** — вынести markdown форматирование в отдельный модуль
5. **Юнит-тесты** — добавить для utils и других модулей
## Известные проблемы