refactor: extract input handlers into separate functions
Упрощение функции handle() в main_input.rs путём извлечения обработчиков режимов в отдельные функции. Извлечённые функции: - handle_profile_mode() - режим профиля с модалкой выхода (~114 строк) - handle_message_search_mode() - поиск по сообщениям (~73 строки) - handle_pinned_mode() - закреплённые сообщения (~34 строки) - handle_reaction_picker_mode() - выбор реакции (~79 строк) - handle_delete_confirmation() - подтверждение удаления (~53 строки) - handle_forward_mode() - выбор чата для пересылки (~48 строк) - handle_chat_search_mode() - поиск по чатам (~32 строки) - handle_escape_key() - обработка Esc (~25 строк) - handle_message_selection() - выбор сообщения (~85 строк) Итого извлечено: ~543 строки из основной функции handle() Результат: - handle() сократилась с 891 до ~350 строк (на 61%) - Каждый режим теперь изолирован и легко тестируется - Улучшена читаемость и maintainability кода - Все тесты проходят успешно Также: - Обновлён tdlib-rs с 1.1 на 1.2.0
This commit is contained in:
12
Cargo.lock
generated
12
Cargo.lock
generated
@@ -2486,9 +2486,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tdlib-rs"
|
name = "tdlib-rs"
|
||||||
version = "1.1.0"
|
version = "1.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f98c960258301bee0758a669fbe12ad8a97c6e764d2f30c5426eea008eebf2d2"
|
checksum = "4c309480dcdd6d5dc2f37866d9063fed280780ddfeb51ae3a0adc2b52b0c0bc3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"dirs 6.0.0",
|
"dirs 6.0.0",
|
||||||
"futures-channel",
|
"futures-channel",
|
||||||
@@ -2505,18 +2505,18 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tdlib-rs-gen"
|
name = "tdlib-rs-gen"
|
||||||
version = "1.1.0"
|
version = "1.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "be6a2373951794ddcf612db2cd26fc67d9fb2721a1497e873c06bd87823fae80"
|
checksum = "ff69c8cab3e5285d2f79f53263077b2cdb12a841b230406e3b1230a345c78968"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"tdlib-rs-parser",
|
"tdlib-rs-parser",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tdlib-rs-parser"
|
name = "tdlib-rs-parser"
|
||||||
version = "1.1.0"
|
version = "1.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "87cbdfae498e57fb48d380fff8eb5c9c98d4497c998f6de0d30d5d6b12f5358b"
|
checksum = "20b1c6703d2284b9d4ddb620cd350f726a1c43bb6f7801f4361b55db2421caa8"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tele-tui"
|
name = "tele-tui"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ url-open = ["dep:open"]
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
ratatui = "0.29"
|
ratatui = "0.29"
|
||||||
crossterm = "0.28"
|
crossterm = "0.28"
|
||||||
tdlib-rs = { version = "1.1", features = ["download-tdlib"] }
|
tdlib-rs = { version = "1.2.0", features = ["download-tdlib"] }
|
||||||
tokio = { version = "1", features = ["full"] }
|
tokio = { version = "1", features = ["full"] }
|
||||||
async-trait = "0.1"
|
async-trait = "0.1"
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
@@ -38,7 +38,7 @@ tokio-test = "0.4"
|
|||||||
criterion = "0.5"
|
criterion = "0.5"
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
tdlib-rs = { version = "1.1", features = ["download-tdlib"] }
|
tdlib-rs = { version = "1.2.0", features = ["download-tdlib"] }
|
||||||
|
|
||||||
[[bench]]
|
[[bench]]
|
||||||
name = "group_messages"
|
name = "group_messages"
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user