summaryrefslogtreecommitdiff
path: root/src/cmd/processer.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/processer.rs')
-rw-r--r--src/cmd/processer.rs41
1 files changed, 0 insertions, 41 deletions
diff --git a/src/cmd/processer.rs b/src/cmd/processer.rs
deleted file mode 100644
index f5fc2a6..0000000
--- a/src/cmd/processer.rs
+++ /dev/null
@@ -1,41 +0,0 @@
-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;
-
-pub async fn jv_cmd_process(
- args: Vec<String>,
- ctx: JVCommandContext,
- renderer_override: String,
-) -> Result<JVRenderResult, CmdProcessError> {
- let nodes = jv_cmd_nodes();
- let command = args.join(" ");
-
- // Find nodes that match the beginning of the command
- let matching_nodes: Vec<&String> = nodes
- .iter()
- .filter(|node| command.starts_with(node.as_str()))
- .collect();
-
- match matching_nodes.len() {
- 0 => {
- // No matching node found
- return Err(CmdProcessError::NoMatchingCommand);
- }
- 1 => {
- let matched_prefix = matching_nodes[0];
- let prefix_len = matched_prefix.split_whitespace().count();
- let trimmed_args: Vec<String> = args.into_iter().skip(prefix_len).collect();
- return jv_cmd_process_node(matched_prefix, trimmed_args, ctx, renderer_override).await;
- }
- _ => {
- // Multiple matching nodes found
- return Err(CmdProcessError::AmbiguousCommand(
- matching_nodes
- .iter()
- .map(|s| s.to_string())
- .collect::<Vec<String>>(),
- ));
- }
- }
-}