summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-01-23 04:49:34 +0800
committer魏曹先生 <1992414357@qq.com>2026-01-23 04:49:34 +0800
commit626536ce51975b051fea087620bc1eb7f6bc69d3 (patch)
treeb24916b22012d9b8b3b09366bca9911781e6d596 /src
parentf607f6ac3b98d00370f613e674da7beb4c61ce58 (diff)
Reorganize project structure into systems and assets
Diffstat (limited to 'src')
-rw-r--r--src/arguments.rs0
-rw-r--r--src/arguments/status.rs0
-rw-r--r--src/bin/jvn.rs4
-rw-r--r--src/cmd/cmds.rs2
-rw-r--r--src/cmd/cmds/template.rs45
-rw-r--r--src/cmd/renderers.rs1
-rw-r--r--src/cmds.rs1
-rw-r--r--src/cmds/status.rs (renamed from src/cmd/cmds/status.rs)2
-rw-r--r--src/inputs.rs0
-rw-r--r--src/lib.rs19
-rw-r--r--src/outputs.rs1
-rw-r--r--src/renderers.rs2
-rw-r--r--src/renderers/json.rs27
-rw-r--r--src/renderers/json_pretty.rs (renamed from src/cmd/renderers/json_renderer.rs)22
-rw-r--r--src/systems.rs1
-rw-r--r--src/systems/cmd.rs (renamed from src/cmd.rs)3
-rw-r--r--src/systems/cmd/cmd_system.rs (renamed from src/cmd/cmd_system.rs)6
-rw-r--r--src/systems/cmd/errors.rs (renamed from src/cmd/errors.rs)0
-rw-r--r--src/systems/cmd/processer.rs (renamed from src/cmd/processer.rs)8
-rw-r--r--src/systems/cmd/renderer.rs (renamed from src/cmd/renderer.rs)2
-rw-r--r--src/utils/workspace_reader.rs2
21 files changed, 64 insertions, 84 deletions
diff --git a/src/arguments.rs b/src/arguments.rs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/arguments.rs
diff --git a/src/arguments/status.rs b/src/arguments/status.rs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/arguments/status.rs
diff --git a/src/bin/jvn.rs b/src/bin/jvn.rs
index 9943ab4..25bf219 100644
--- a/src/bin/jvn.rs
+++ b/src/bin/jvn.rs
@@ -1,7 +1,7 @@
-use just_enough_vcs_cli::cmd::cmd_system::JVCommandContext;
+use just_enough_vcs_cli::systems::cmd::cmd_system::JVCommandContext;
use just_enough_vcs_cli::utils::display::md;
use just_enough_vcs_cli::{
- cmd::{errors::CmdProcessError, processer::jv_cmd_process},
+ systems::cmd::{errors::CmdProcessError, processer::jv_cmd_process},
utils::env::current_locales,
};
use rust_i18n::{set_locale, t};
diff --git a/src/cmd/cmds.rs b/src/cmd/cmds.rs
deleted file mode 100644
index e06480c..0000000
--- a/src/cmd/cmds.rs
+++ /dev/null
@@ -1,2 +0,0 @@
-pub mod _registry;
-pub mod status;
diff --git a/src/cmd/cmds/template.rs b/src/cmd/cmds/template.rs
deleted file mode 100644
index 1c56c29..0000000
--- a/src/cmd/cmds/template.rs
+++ /dev/null
@@ -1,45 +0,0 @@
-use clap::Parser;
-use serde::Serialize;
-
-use crate::subcmd::{
- cmd::JVCommand,
- errors::{CmdExecuteError, CmdPrepareError, CmdRenderError},
- renderer::{JVRenderResult, JVResultRenderer},
-};
-
-pub struct JVUnknownCommand;
-
-#[derive(Parser, Debug)]
-pub struct JVUnknownArgument;
-
-pub struct JVUnknownInput;
-
-#[derive(Serialize)]
-pub struct JVUnknownOutput;
-
-impl JVCommand<JVUnknownArgument, JVUnknownInput, JVUnknownOutput, JVStatusRenderer>
- for JVUnknownCommand
-{
- async fn prepare(
- _args: JVUnknownArgument,
- _ctx: JVCommandContext,
- ) -> Result<JVUnknownInput, CmdPrepareError> {
- todo!()
- }
-
- async fn exec(_input: JVUnknownInput) -> Result<JVUnknownOutput, CmdExecuteError> {
- todo!()
- }
-
- fn get_help_str() -> String {
- "".to_string()
- }
-}
-
-pub struct JVStatusRenderer;
-
-impl JVResultRenderer<JVUnknownOutput> for JVStatusRenderer {
- async fn render(_data: &JVUnknownOutput) -> Result<JVRenderResult, CmdRenderError> {
- todo!()
- }
-}
diff --git a/src/cmd/renderers.rs b/src/cmd/renderers.rs
deleted file mode 100644
index 91fa88e..0000000
--- a/src/cmd/renderers.rs
+++ /dev/null
@@ -1 +0,0 @@
-pub mod json_renderer;
diff --git a/src/cmds.rs b/src/cmds.rs
new file mode 100644
index 0000000..822c729
--- /dev/null
+++ b/src/cmds.rs
@@ -0,0 +1 @@
+pub mod status;
diff --git a/src/cmd/cmds/status.rs b/src/cmds/status.rs
index d73a28a..57e9cde 100644
--- a/src/cmd/cmds/status.rs
+++ b/src/cmds/status.rs
@@ -17,7 +17,7 @@ use just_enough_vcs::vcs::data::{
use serde::Serialize;
use crate::{
- cmd::{
+ systems::cmd::{
cmd_system::{JVCommand, JVCommandContext},
errors::{CmdExecuteError, CmdPrepareError, CmdRenderError},
renderer::{JVRenderResult, JVResultRenderer},
diff --git a/src/inputs.rs b/src/inputs.rs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/inputs.rs
diff --git a/src/lib.rs b/src/lib.rs
index 7c9dd8f..bc86288 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,3 +1,5 @@
+// --- LIBS ---
+
/// Utils
pub mod utils;
@@ -7,5 +9,18 @@ pub mod data;
/// Json Format
pub mod leegacy_json_output;
-/// Command
-pub mod cmd;
+/// Systems
+pub mod systems;
+
+// --- ASSETS ---
+
+/// Commands
+pub mod cmds;
+
+/// Command Data
+pub mod arguments;
+pub mod inputs;
+pub mod outputs;
+
+/// Result Renderers
+pub mod renderers;
diff --git a/src/outputs.rs b/src/outputs.rs
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/src/outputs.rs
@@ -0,0 +1 @@
+
diff --git a/src/renderers.rs b/src/renderers.rs
new file mode 100644
index 0000000..60ad190
--- /dev/null
+++ b/src/renderers.rs
@@ -0,0 +1,2 @@
+pub mod json;
+pub mod json_pretty;
diff --git a/src/renderers/json.rs b/src/renderers/json.rs
new file mode 100644
index 0000000..9a3105d
--- /dev/null
+++ b/src/renderers/json.rs
@@ -0,0 +1,27 @@
+use serde::Serialize;
+use serde_json;
+
+use crate::{
+ r_print,
+ systems::cmd::{
+ errors::CmdRenderError,
+ renderer::{JVRenderResult, JVResultRenderer},
+ },
+};
+
+pub struct JVResultJsonRenderer;
+
+impl<T> JVResultRenderer<T> for JVResultJsonRenderer
+where
+ T: Serialize + Sync,
+{
+ async fn render(data: &T) -> Result<JVRenderResult, CmdRenderError> {
+ let mut r = JVRenderResult::default();
+ let json_string = serde_json::to_string(data)
+ .map_err(|e| CmdRenderError::SerializeFailed(e.to_string()))?;
+
+ r_print!(r, "{}", json_string);
+
+ Ok(r)
+ }
+}
diff --git a/src/cmd/renderers/json_renderer.rs b/src/renderers/json_pretty.rs
index 14c1f81..a4a3ba5 100644
--- a/src/cmd/renderers/json_renderer.rs
+++ b/src/renderers/json_pretty.rs
@@ -1,31 +1,13 @@
use serde::Serialize;
-use serde_json;
use crate::{
- cmd::{
+ r_print,
+ systems::cmd::{
errors::CmdRenderError,
renderer::{JVRenderResult, JVResultRenderer},
},
- r_print,
};
-pub struct JVResultJsonRenderer;
-
-impl<T> JVResultRenderer<T> for JVResultJsonRenderer
-where
- T: Serialize + Sync,
-{
- async fn render(data: &T) -> Result<JVRenderResult, CmdRenderError> {
- let mut r = JVRenderResult::default();
- let json_string = serde_json::to_string(data)
- .map_err(|e| CmdRenderError::SerializeFailed(e.to_string()))?;
-
- r_print!(r, "{}", json_string);
-
- Ok(r)
- }
-}
-
pub struct JVResultPrettyJsonRenderer;
impl<T> JVResultRenderer<T> for JVResultPrettyJsonRenderer
diff --git a/src/systems.rs b/src/systems.rs
new file mode 100644
index 0000000..52958ec
--- /dev/null
+++ b/src/systems.rs
@@ -0,0 +1 @@
+pub mod cmd;
diff --git a/src/cmd.rs b/src/systems/cmd.rs
index 2c9cac6..8983892 100644
--- a/src/cmd.rs
+++ b/src/systems/cmd.rs
@@ -1,6 +1,5 @@
+pub mod _registry;
pub mod cmd_system;
-pub mod cmds;
pub mod errors;
pub mod processer;
pub mod renderer;
-pub mod renderers;
diff --git a/src/cmd/cmd_system.rs b/src/systems/cmd/cmd_system.rs
index 09daf5a..65f972d 100644
--- a/src/cmd/cmd_system.rs
+++ b/src/systems/cmd/cmd_system.rs
@@ -1,11 +1,11 @@
use serde::Serialize;
use crate::{
- cmd::{
+ r_println,
+ systems::cmd::{
errors::{CmdExecuteError, CmdPrepareError, CmdProcessError, CmdRenderError},
renderer::{JVRenderResult, JVResultRenderer},
},
- r_println,
};
use std::future::Future;
@@ -35,7 +35,7 @@ where
{
async move {
let renderer_str = renderer.as_str();
- include!("renderers/_renderers.rs")
+ include!("_renderers.rs")
}
}
diff --git a/src/cmd/errors.rs b/src/systems/cmd/errors.rs
index 358d15a..358d15a 100644
--- a/src/cmd/errors.rs
+++ b/src/systems/cmd/errors.rs
diff --git a/src/cmd/processer.rs b/src/systems/cmd/processer.rs
index f5fc2a6..d357e44 100644
--- a/src/cmd/processer.rs
+++ b/src/systems/cmd/processer.rs
@@ -1,7 +1,7 @@
-use crate::cmd::cmd_system::JVCommandContext;
-use crate::cmd::cmds::_registry::{jv_cmd_nodes, jv_cmd_process_node};
-use crate::cmd::errors::CmdProcessError;
-use crate::cmd::renderer::JVRenderResult;
+use crate::systems::cmd::_registry::{jv_cmd_nodes, jv_cmd_process_node};
+use crate::systems::cmd::cmd_system::JVCommandContext;
+use crate::systems::cmd::errors::CmdProcessError;
+use crate::systems::cmd::renderer::JVRenderResult;
pub async fn jv_cmd_process(
args: Vec<String>,
diff --git a/src/cmd/renderer.rs b/src/systems/cmd/renderer.rs
index eefa0f6..bdd702d 100644
--- a/src/cmd/renderer.rs
+++ b/src/systems/cmd/renderer.rs
@@ -2,7 +2,7 @@ use std::fmt::{Display, Formatter};
use serde::Serialize;
-use crate::cmd::errors::CmdRenderError;
+use crate::systems::cmd::errors::CmdRenderError;
pub trait JVResultRenderer<Data>
where
diff --git a/src/utils/workspace_reader.rs b/src/utils/workspace_reader.rs
index 575ec64..a3bc754 100644
--- a/src/utils/workspace_reader.rs
+++ b/src/utils/workspace_reader.rs
@@ -20,7 +20,7 @@ use just_enough_vcs::{
},
};
-use crate::cmd::errors::CmdPrepareError;
+use crate::systems::cmd::errors::CmdPrepareError;
/// Temporarily enter a directory to execute a block of code, then return to the original directory
macro_rules! entry_dir {