From 18cb5043cf9adc33b35cea18325ab160cc4292d7 Mon Sep 17 00:00:00 2001 From: J / Jacob Babich Date: Sat, 5 Oct 2024 23:27:47 -0400 Subject: [PATCH] feat: initialize `core`, `gui-eframe`, and `tui-ratatui` crates and use them in the `multibinary` --- Cargo.lock | 23 +++++++++++++++++++++++ Cargo.toml | 2 +- core/Cargo.toml | 16 ++++++++++++++++ core/src/lib.rs | 0 gui-eframe/Cargo.toml | 16 ++++++++++++++++ gui-eframe/src/lib.rs | 4 ++++ gui-eframe/src/main.rs | 1 + multibinary/Cargo.toml | 15 ++++++++++++--- multibinary/src/main.rs | 4 ++-- tui-ratatui/Cargo.toml | 16 ++++++++++++++++ tui-ratatui/src/lib.rs | 4 ++++ tui-ratatui/src/main.rs | 1 + 12 files changed, 96 insertions(+), 6 deletions(-) create mode 100644 core/Cargo.toml create mode 100644 core/src/lib.rs create mode 100644 gui-eframe/Cargo.toml create mode 100644 gui-eframe/src/lib.rs create mode 100644 gui-eframe/src/main.rs create mode 100644 tui-ratatui/Cargo.toml create mode 100644 tui-ratatui/src/lib.rs create mode 100644 tui-ratatui/src/main.rs diff --git a/Cargo.lock b/Cargo.lock index be2018d..85b9baa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7,6 +7,8 @@ name = "ac-qu-ai-nt" version = "0.0.7" dependencies = [ "ac-qu-ai-nt-cli-clap", + "ac-qu-ai-nt-gui-eframe", + "ac-qu-ai-nt-tui-ratatui", "clap", "dirs-next", "tracing-subscriber", @@ -20,6 +22,27 @@ dependencies = [ "tracing", ] +[[package]] +name = "ac-qu-ai-nt-core" +version = "0.0.1" +dependencies = [ + "tracing", +] + +[[package]] +name = "ac-qu-ai-nt-gui-eframe" +version = "0.0.1" +dependencies = [ + "tracing", +] + +[[package]] +name = "ac-qu-ai-nt-tui-ratatui" +version = "0.0.1" +dependencies = [ + "tracing", +] + [[package]] name = "anstream" version = "0.6.15" diff --git a/Cargo.toml b/Cargo.toml index 9056e6b..af39c29 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace] -members = ["cli-clap", "multibinary"] +members = ["core", "cli-clap", "gui-eframe", "tui-ratatui", "multibinary"] resolver = "2" [workspace.package] diff --git a/core/Cargo.toml b/core/Cargo.toml new file mode 100644 index 0000000..f38b758 --- /dev/null +++ b/core/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "ac-qu-ai-nt-core" +version = "0.0.1" +edition = "2021" +rust-version = "1.76" + +authors = { workspace = true } +license = { workspace = true } +repository = { workspace = true } + +[features] +default = ["tracing"] +tracing = ["dep:tracing"] + +[dependencies] +tracing = { workspace = true, optional = true } diff --git a/core/src/lib.rs b/core/src/lib.rs new file mode 100644 index 0000000..e69de29 diff --git a/gui-eframe/Cargo.toml b/gui-eframe/Cargo.toml new file mode 100644 index 0000000..a96ec6c --- /dev/null +++ b/gui-eframe/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "ac-qu-ai-nt-gui-eframe" +version = "0.0.1" +edition = "2021" +rust-version = "1.76" + +authors = { workspace = true } +license = { workspace = true } +repository = { workspace = true } + +[features] +default = ["tracing"] +tracing = ["dep:tracing"] + +[dependencies] +tracing = { workspace = true, optional = true } diff --git a/gui-eframe/src/lib.rs b/gui-eframe/src/lib.rs new file mode 100644 index 0000000..0f792a6 --- /dev/null +++ b/gui-eframe/src/lib.rs @@ -0,0 +1,4 @@ +pub fn main() { + #[cfg(feature = "tracing")] + tracing::info!("Hello from the eframe-based GUI!"); +} diff --git a/gui-eframe/src/main.rs b/gui-eframe/src/main.rs new file mode 100644 index 0000000..2b62975 --- /dev/null +++ b/gui-eframe/src/main.rs @@ -0,0 +1 @@ +use ac_qu_ai_nt_gui_eframe::main; diff --git a/multibinary/Cargo.toml b/multibinary/Cargo.toml index a0c7bff..0e38f2f 100644 --- a/multibinary/Cargo.toml +++ b/multibinary/Cargo.toml @@ -13,13 +13,22 @@ repository = { workspace = true } default = ["cli-clap", "gui-eframe", "tui-ratatui", "tracing"] cli-clap = ["dep:ac-qu-ai-nt-cli-clap"] -gui-eframe = [] -tui-ratatui = [] +gui-eframe = ["dep:ac-qu-ai-nt-gui-eframe"] +tui-ratatui = ["dep:ac-qu-ai-nt-tui-ratatui"] -tracing = ["dep:tracing-subscriber", "ac-qu-ai-nt-cli-clap?/tracing"] +tracing = [ + "dep:tracing-subscriber", + "ac-qu-ai-nt-cli-clap?/tracing", + "ac-qu-ai-nt-gui-eframe?/tracing", + "ac-qu-ai-nt-tui-ratatui?/tracing", +] [dependencies] ac-qu-ai-nt-cli-clap = { version = "0.0.5", path = "../cli-clap", optional = true } +ac-qu-ai-nt-gui-eframe = { version = "0.0.1", path = "../gui-eframe", optional = true } +ac-qu-ai-nt-tui-ratatui = { version = "0.0.1", path = "../tui-ratatui", optional = true } + clap = { workspace = true, features = ["derive", "env"] } dirs-next = "2.0.0" + tracing-subscriber = { version = "0.3.18", optional = true } diff --git a/multibinary/src/main.rs b/multibinary/src/main.rs index 62f141f..3b61153 100644 --- a/multibinary/src/main.rs +++ b/multibinary/src/main.rs @@ -59,8 +59,8 @@ fn main() { #[cfg(feature = "cli-clap")] Command::CliClap => ac_qu_ai_nt_cli_clap::main(), #[cfg(feature = "gui-eframe")] - Command::GuiEframe => todo!(), + Command::GuiEframe => ac_qu_ai_nt_gui_eframe::main(), #[cfg(feature = "tui-ratatui")] - Command::TuiRatatui => todo!(), + Command::TuiRatatui => ac_qu_ai_nt_tui_ratatui::main(), } } diff --git a/tui-ratatui/Cargo.toml b/tui-ratatui/Cargo.toml new file mode 100644 index 0000000..91482a1 --- /dev/null +++ b/tui-ratatui/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "ac-qu-ai-nt-tui-ratatui" +version = "0.0.1" +edition = "2021" +rust-version = "1.76" + +authors = { workspace = true } +license = { workspace = true } +repository = { workspace = true } + +[features] +default = ["tracing"] +tracing = ["dep:tracing"] + +[dependencies] +tracing = { workspace = true, optional = true } diff --git a/tui-ratatui/src/lib.rs b/tui-ratatui/src/lib.rs new file mode 100644 index 0000000..a5984c2 --- /dev/null +++ b/tui-ratatui/src/lib.rs @@ -0,0 +1,4 @@ +pub fn main() { + #[cfg(feature = "tracing")] + tracing::info!("This is from the TUI based on Ratatui."); +} diff --git a/tui-ratatui/src/main.rs b/tui-ratatui/src/main.rs new file mode 100644 index 0000000..0abb01c --- /dev/null +++ b/tui-ratatui/src/main.rs @@ -0,0 +1 @@ +use ac_qu_ai_nt_tui_ratatui::main;