diff --git a/crates/commands/src/lib.rs b/crates/commands/src/lib.rs index e9f3bd7a..927f1503 100644 --- a/crates/commands/src/lib.rs +++ b/crates/commands/src/lib.rs @@ -21,7 +21,6 @@ lazy_static::lazy_static! { pub static ref COMMAND_TREE: TreeBranch = { let mut tree = TreeBranch { current_command_key: None, - possible_tokens: vec![], branches: OrderMap::new(), }; @@ -101,12 +100,13 @@ fn parse_command(input: String) -> CommandResult { let mut flags: HashMap> = HashMap::new(); loop { - println!("{:?}", local_tree.possible_tokens); + println!("possible: {:?}", local_tree.branches.keys()); let next = next_token( - local_tree.possible_tokens.clone(), + local_tree.branches.keys().cloned().collect(), input.clone(), current_pos, ); + println!("next: {:?}", next); match next { Ok((found_token, arg, new_pos)) => { current_pos = new_pos; diff --git a/crates/commands/src/tree.rs b/crates/commands/src/tree.rs index 6dee7f0a..77bd2f8c 100644 --- a/crates/commands/src/tree.rs +++ b/crates/commands/src/tree.rs @@ -2,13 +2,10 @@ use ordermap::OrderMap; use smol_str::SmolStr; use crate::{commands::Command, Token}; -use std::cmp::Ordering; #[derive(Debug, Clone)] pub struct TreeBranch { pub current_command_key: Option, - /// branches.keys(), but sorted by specificity - pub possible_tokens: Vec, pub branches: OrderMap, } @@ -20,7 +17,6 @@ impl TreeBranch { // recursively get or create a sub-branch for each token current_branch = current_branch.branches.entry(token).or_insert(TreeBranch { current_command_key: None, - possible_tokens: vec![], branches: OrderMap::new(), }) } @@ -29,7 +25,6 @@ impl TreeBranch { Token::Empty, TreeBranch { current_command_key: Some(command.cb), - possible_tokens: vec![], branches: OrderMap::new(), }, );