aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md2
-rw-r--r--Cargo.lock252
-rw-r--r--Cargo.toml13
-rw-r--r--src/cli.rs43
-rw-r--r--src/main.rs5
5 files changed, 42 insertions, 273 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4aa9bae..2cec989 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,7 +2,7 @@
None
# Features
-None
+1. Migrated `mingling` version to `0.1.8`
# BREAKING CHANGES
None
diff --git a/Cargo.lock b/Cargo.lock
index 3beac18..bbd28ee 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3,65 +3,6 @@
version = 4
[[package]]
-name = "aho-corasick"
-version = "1.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "anstream"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d"
-dependencies = [
- "anstyle",
- "anstyle-parse",
- "anstyle-query",
- "anstyle-wincon",
- "colorchoice",
- "is_terminal_polyfill",
- "utf8parse",
-]
-
-[[package]]
-name = "anstyle"
-version = "1.0.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000"
-
-[[package]]
-name = "anstyle-parse"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e"
-dependencies = [
- "utf8parse",
-]
-
-[[package]]
-name = "anstyle-query"
-version = "1.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
-dependencies = [
- "windows-sys",
-]
-
-[[package]]
-name = "anstyle-wincon"
-version = "3.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
-dependencies = [
- "anstyle",
- "once_cell_polyfill",
- "windows-sys",
-]
-
-[[package]]
name = "anyhow"
version = "1.0.102"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -83,12 +24,6 @@ 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"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -103,18 +38,11 @@ dependencies = [
"serde",
"serde_yaml",
"strip-ansi-escapes",
- "thiserror 1.0.69",
- "tokio",
+ "thiserror",
"uuid",
]
[[package]]
-name = "colorchoice"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570"
-
-[[package]]
name = "dirs"
version = "6.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -136,29 +64,6 @@ dependencies = [
]
[[package]]
-name = "env_filter"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32e90c2accc4b07a8456ea0debdc2e7587bdd890680d71173a15d4ae604f6eef"
-dependencies = [
- "log",
- "regex",
-]
-
-[[package]]
-name = "env_logger"
-version = "0.11.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0621c04f2196ac3f488dd583365b9c09be011a4ab8b9f37248ffcc8f6198b56a"
-dependencies = [
- "anstream",
- "anstyle",
- "env_filter",
- "jiff",
- "log",
-]
-
-[[package]]
name = "equivalent"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -234,42 +139,12 @@ dependencies = [
]
[[package]]
-name = "is_terminal_polyfill"
-version = "1.70.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
-
-[[package]]
name = "itoa"
version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
[[package]]
-name = "jiff"
-version = "0.2.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a3546dc96b6d42c5f24902af9e2538e82e39ad350b0c766eb3fbf2d8f3d8359"
-dependencies = [
- "jiff-static",
- "log",
- "portable-atomic",
- "portable-atomic-util",
- "serde_core",
-]
-
-[[package]]
-name = "jiff-static"
-version = "0.2.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
name = "js-sys"
version = "0.3.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -329,34 +204,33 @@ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
[[package]]
name = "mingling"
-version = "0.1.5"
+version = "0.1.8"
dependencies = [
"mingling_core",
"mingling_macros",
+ "serde",
"size",
]
[[package]]
name = "mingling_core"
-version = "0.1.4"
+version = "0.1.8"
dependencies = [
- "env_logger",
+ "dirs",
"just_fmt",
"just_template",
- "log",
"once_cell",
"ron",
"serde",
"serde_json",
"serde_yaml",
- "thiserror 2.0.18",
- "tokio",
+ "thiserror",
"toml",
]
[[package]]
name = "mingling_macros"
-version = "0.1.4"
+version = "0.1.8"
dependencies = [
"just_fmt",
"once_cell",
@@ -372,39 +246,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
[[package]]
-name = "once_cell_polyfill"
-version = "1.70.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
-
-[[package]]
name = "option-ext"
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"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
-
-[[package]]
-name = "portable-atomic-util"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618"
-dependencies = [
- "portable-atomic",
-]
-
-[[package]]
name = "prettyplease"
version = "0.2.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -446,39 +293,10 @@ checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac"
dependencies = [
"getrandom 0.2.17",
"libredox",
- "thiserror 2.0.18",
-]
-
-[[package]]
-name = "regex"
-version = "1.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-automata",
- "regex-syntax",
+ "thiserror",
]
[[package]]
-name = "regex-automata"
-version = "0.4.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.8.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
-
-[[package]]
name = "ron"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -603,31 +421,11 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "1.0.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
-dependencies = [
- "thiserror-impl 1.0.69",
-]
-
-[[package]]
-name = "thiserror"
version = "2.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
dependencies = [
- "thiserror-impl 2.0.18",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
+ "thiserror-impl",
]
[[package]]
@@ -642,28 +440,6 @@ dependencies = [
]
[[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"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -727,12 +503,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
[[package]]
-name = "utf8parse"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
-
-[[package]]
name = "uuid"
version = "1.23.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -872,9 +642,9 @@ dependencies = [
[[package]]
name = "winnow"
-version = "1.0.1"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5"
+checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0"
[[package]]
name = "wit-bindgen"
diff --git a/Cargo.toml b/Cargo.toml
index f962729..951a0da 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "cobill" # chaos_billing
+name = "cobill" # chaos_billing
version = "0.1.0"
edition = "2024"
@@ -8,14 +8,17 @@ name = "cobill"
path = "src/main.rs"
[dependencies]
-mingling = { path = "../mingling/mingling", features = ["full", "debug"] }
-tokio = { version = "1", features = ["macros", "rt", "rt-multi-thread" ] }
+mingling = { path = "../mingling/mingling", features = [
+ "parser",
+ "general_renderer",
+ "comp",
+] }
uuid = { version = "1", features = ["v4"] }
serde = { version = "1", features = ["derive"] }
serde_yaml = "0.9.33"
strip-ansi-escapes = "0.2.1"
-thiserror = "1.0.69"
+thiserror = "2.0.18"
dirs = "6"
[build-dependencies]
-mingling = { path = "../mingling/mingling", features = ["comp"] }
+mingling = { path = "../mingling/mingling", features = ["builds", "comp"] }
diff --git a/src/cli.rs b/src/cli.rs
index 44c1f8f..121921f 100644
--- a/src/cli.rs
+++ b/src/cli.rs
@@ -3,7 +3,6 @@ use std::{fs::create_dir_all, io::ErrorKind, path::PathBuf, process::exit};
use mingling::{
AnyOutput, Groupped, ShellContext, Suggest, SuggestItem,
macros::{chain, completion, dispatcher, gen_program, pack, r_println, renderer, suggest},
- marker::NextProcess,
parser::Picker,
setup::GeneralRendererSetup,
};
@@ -18,7 +17,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 +54,7 @@ pub async fn entry() {
));
// Execute
- program.exec().await;
+ program.exec();
}
dispatcher!("clear", ClearAllBillCommand => ClearAllBillEntry);
@@ -156,7 +155,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 +163,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,9 +175,9 @@ 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::<f64>(["--paid", "-p"], PaidRequired::new(()).to_render())
+ .pick_or_route::<f64, _>(["--paid", "-p"], PaidRequired::new(()).to_render())
.pick_or_route::<Vec<String>>(["--for", "-f"], ForMembersRequired::new(()).to_render())
.pick_or::<String>(
["--reason", "-r", "--message", "-m"],
@@ -203,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);
});
@@ -221,17 +220,16 @@ pack!(ErrorDuplicateSplitMembers = ());
pack!(ErrorNegativePaidAmount = ());
#[chain]
-async fn parse_ls_cmd(prev: ListAllBillEntry) -> NextProcess {
- let optimize = Picker::<()>::new(prev.inner)
+fn parse_ls_cmd(prev: ListAllBillEntry) -> NextProcess {
+ let optimize = Picker::new(prev.inner)
.pick::<bool>(["-O", "--optimize"])
- .unpack_directly()
- .0;
+ .unpack();
let state = StateListBills { optimize };
AnyOutput::new(state).route_chain()
}
#[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) {
@@ -267,17 +265,16 @@ pack!(StateEditBills = String); // Editor name
pack!(ErrorEditorNotFound = String);
#[chain]
-async fn parse_edit_cmd(prev: EditEntry) -> NextProcess {
- let editor = Picker::<()>::new(prev.inner)
+fn parse_edit_cmd(prev: EditEntry) -> NextProcess {
+ let editor = Picker::new(prev.inner)
.pick_or::<String>(["--editor", "-e"], get_default_editor())
- .unpack_directly()
- .0;
+ .unpack();
let state = StateEditBills::new(editor);
AnyOutput::new(state).route_chain()
}
#[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(),
@@ -383,27 +380,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()
}