Mikhail Kilin
|
dff0897da4
|
refactor: add modal/validation utils and partial App encapsulation
Quick wins refactoring (Variant 1):
- Created src/utils/modal_handler.rs (120+ lines)
- 4 functions for modal handling (close, confirm, yes/no)
- ModalAction enum for type-safe processing
- English and Russian keyboard layout support
- 4 unit tests
- Created src/utils/validation.rs (180+ lines)
- 7 validation functions (empty, length, IDs, etc)
- Covers all common validation patterns
- 7 unit tests
- Partial App encapsulation:
- Made config field private (readonly via app.config())
- Added 30+ getter/setter methods
- Updated ui/messages.rs to use config()
- Updated documentation:
- REFACTORING_OPPORTUNITIES.md: #1 Complete, #5 Partial
- CONTEXT.md: Added quick wins section
Tests: 563 passed, 0 failed
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-01 23:55:49 +03:00 |
|
Mikhail Kilin
|
c6beea5608
|
refactor: create timeout/retry utilities to reduce code duplication (P1.1)
Created new utility modules to eliminate repeated timeout/retry patterns:
- src/utils/retry.rs: with_timeout() and with_timeout_msg() helpers
- src/utils/formatting.rs: timestamp formatting utilities (from utils.rs)
- src/utils/tdlib.rs: TDLib log configuration utilities (from utils.rs)
Refactored src/input/main_input.rs:
- Replaced 18+ instances of timeout(Duration, op).await pattern
- Simplified error handling from nested Ok(Ok(...))/Ok(Err(...))/Err(...)
to cleaner Ok(...)/Err(...) with custom timeout messages
- Added type annotations for compiler type inference
Benefits:
- Reduced code duplication from ~20 instances to 2 utility functions
- Cleaner, more readable error handling
- Easier to maintain timeout logic in one place
- All 59 tests passing
Progress: REFACTORING_OPPORTUNITIES.md #1 (Дублирование кода) - Частично выполнено
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2026-02-01 19:56:33 +03:00 |
|