From 2390e7cdf2db261f8c2f035858c86a1aab6c40de Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Sun, 19 Apr 2026 01:27:36 +0800 Subject: Remove tokio dependency and convert to synchronous code --- Cargo.lock | 36 ------------------------------------ Cargo.toml | 1 - src/cli.rs | 30 +++++++++++++++--------------- src/main.rs | 5 ++--- 4 files changed, 17 insertions(+), 55 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3beac18..e1a2f5b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -82,12 +82,6 @@ version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" -[[package]] -name = "bytes" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" - [[package]] name = "cfg-if" version = "1.0.4" @@ -104,7 +98,6 @@ dependencies = [ "serde_yaml", "strip-ansi-escapes", "thiserror 1.0.69", - "tokio", "uuid", ] @@ -350,7 +343,6 @@ dependencies = [ "serde_json", "serde_yaml", "thiserror 2.0.18", - "tokio", "toml", ] @@ -383,12 +375,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" -[[package]] -name = "pin-project-lite" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" - [[package]] name = "portable-atomic" version = "1.13.1" @@ -641,28 +627,6 @@ dependencies = [ "syn", ] -[[package]] -name = "tokio" -version = "1.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91135f59b1cbf38c91e73cf3386fca9bb77915c45ce2771460c9d92f0f3d776" -dependencies = [ - "bytes", - "pin-project-lite", - "tokio-macros", -] - -[[package]] -name = "tokio-macros" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "toml" version = "1.1.2+spec-1.1.0" diff --git a/Cargo.toml b/Cargo.toml index f962729..694eabe 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,6 @@ path = "src/main.rs" [dependencies] mingling = { path = "../mingling/mingling", features = ["full", "debug"] } -tokio = { version = "1", features = ["macros", "rt", "rt-multi-thread" ] } uuid = { version = "1", features = ["v4"] } serde = { version = "1", features = ["derive"] } serde_yaml = "0.9.33" diff --git a/src/cli.rs b/src/cli.rs index d655af2..5a16588 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -18,7 +18,7 @@ use crate::{ string_vec, }; -pub async fn entry() { +pub fn entry() { let mut program = ThisProgram::new(); if program.pick_global_flag(["-v", "--version"]) { @@ -55,7 +55,7 @@ pub async fn entry() { )); // Execute - program.exec().await; + program.exec(); } dispatcher!("clear", ClearAllBillCommand => ClearAllBillEntry); @@ -156,7 +156,7 @@ fn comp_edit(ctx: &ShellContext) -> Suggest { } #[chain] -async fn do_clear_cmd(_prev: ClearAllBillEntry) -> NextProcess { +fn do_clear_cmd(_prev: ClearAllBillEntry) -> NextProcess { op_bills(|b| b.clear_items()); Empty::new(()).to_render() } @@ -164,7 +164,7 @@ async fn do_clear_cmd(_prev: ClearAllBillEntry) -> NextProcess { pack!(ResultCat = String); #[chain] -async fn read_cat_cmd(_prev: CatEntry) -> NextProcess { +fn read_cat_cmd(_prev: CatEntry) -> NextProcess { ResultCat::new(read_bills().table()).to_render() } @@ -176,7 +176,7 @@ fn render_cat_result(prev: ResultCat) { pack!(StateAddBillItem = BillItem); #[chain] -async fn parse_add_cmd(prev: AddBillEntry) -> NextProcess { +fn parse_add_cmd(prev: AddBillEntry) -> NextProcess { let picked = Picker::new(prev.inner) .pick_or_route::(["--paid", "-p"], PaidRequired::new(()).to_render()) .pick_or_route::>(["--for", "-f"], ForMembersRequired::new(()).to_render()) @@ -202,7 +202,7 @@ async fn parse_add_cmd(prev: AddBillEntry) -> NextProcess { } #[chain] -async fn handle_add_bill_item(prev: StateAddBillItem) -> NextProcess { +fn handle_add_bill_item(prev: StateAddBillItem) -> NextProcess { op_bills(|b| { b.add_item(prev.inner); }); @@ -220,7 +220,7 @@ pack!(ErrorDuplicateSplitMembers = ()); pack!(ErrorNegativePaidAmount = ()); #[chain] -async fn parse_ls_cmd(prev: ListAllBillEntry) -> NextProcess { +fn parse_ls_cmd(prev: ListAllBillEntry) -> NextProcess { let optimize = Picker::<()>::new(prev.inner) .pick::(["-O", "--optimize"]) .unpack_directly() @@ -229,7 +229,7 @@ async fn parse_ls_cmd(prev: ListAllBillEntry) -> NextProcess { } #[chain] -async fn handle_list_bills(prev: StateListBills) -> NextProcess { +fn handle_list_bills(prev: StateListBills) -> NextProcess { if prev.optimize { let bills = read_bills(); match calculate_from(bills) { @@ -263,7 +263,7 @@ pack!(StateEditBills = String); // Editor name pack!(ErrorEditorNotFound = String); #[chain] -async fn parse_edit_cmd(prev: EditEntry) -> NextProcess { +fn parse_edit_cmd(prev: EditEntry) -> NextProcess { let editor = Picker::<()>::new(prev.inner) .pick_or::(["--editor", "-e"], get_default_editor()) .unpack_directly() @@ -273,7 +273,7 @@ async fn parse_edit_cmd(prev: EditEntry) -> NextProcess { } #[chain] -async fn exec_edit_cmd(prev: StateEditBills) -> NextProcess { +fn exec_edit_cmd(prev: StateEditBills) -> NextProcess { let text = match input_with_editor_cutsom( read_bills().table(), state_edit_file_path(), @@ -376,27 +376,27 @@ dispatcher!("helix", EditWithHelixCommand => EditWithHelixEntry); dispatcher!("nano", EditWithNanoCommand => EditWithNanoEntry); #[chain] -async fn edit_with_vi(_prev: EditWithViEntry) -> NextProcess { +fn edit_with_vi(_prev: EditWithViEntry) -> NextProcess { EditEntry::new(string_vec!["-e", "vi"]).to_chain() } #[chain] -async fn edit_with_vim(_prev: EditWithVimEntry) -> NextProcess { +fn edit_with_vim(_prev: EditWithVimEntry) -> NextProcess { EditEntry::new(string_vec!["-e", "vim"]).to_chain() } #[chain] -async fn edit_with_nvim(_prev: EditWithNvimEntry) -> NextProcess { +fn edit_with_nvim(_prev: EditWithNvimEntry) -> NextProcess { EditEntry::new(string_vec!["-e", "nvim"]).to_chain() } #[chain] -async fn edit_with_helix(_prev: EditWithHelixEntry) -> NextProcess { +fn edit_with_helix(_prev: EditWithHelixEntry) -> NextProcess { EditEntry::new(string_vec!["-e", "helix"]).to_chain() } #[chain] -async fn edit_with_nano(_prev: EditWithNanoEntry) -> NextProcess { +fn edit_with_nano(_prev: EditWithNanoEntry) -> NextProcess { EditEntry::new(string_vec!["-e", "nano"]).to_chain() } diff --git a/src/main.rs b/src/main.rs index 8a31d09..831063d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,7 +10,6 @@ mod who; #[cfg(test)] mod test; -#[tokio::main] -async fn main() { - cli::entry().await +fn main() { + cli::entry() } -- cgit