diff options
| author | mat <github@matdoes.dev> | 2022-04-17 15:57:28 -0500 |
|---|---|---|
| committer | mat <github@matdoes.dev> | 2022-04-17 15:57:28 -0500 |
| commit | 2e904225611b66fa72b082e4f5e188b55b333fcd (patch) | |
| tree | 5def0247b2a721ea20eded8ac996d957c591a403 /azalea-brigadier/src/tree.rs | |
| parent | 10cd1733cbba5c637fa0130a0cd7a7ab6e618226 (diff) | |
| download | azalea-drasl-2e904225611b66fa72b082e4f5e188b55b333fcd.tar.xz | |
Fix clippy issues and add a couple tests to dispatcher
Diffstat (limited to 'azalea-brigadier/src/tree.rs')
| -rw-r--r-- | azalea-brigadier/src/tree.rs | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/azalea-brigadier/src/tree.rs b/azalea-brigadier/src/tree.rs index c81c599f..5c33a879 100644 --- a/azalea-brigadier/src/tree.rs +++ b/azalea-brigadier/src/tree.rs @@ -11,15 +11,7 @@ use crate::{ string_range::StringRange, string_reader::StringReader, }; -use std::{ - any::Any, - cell::RefCell, - collections::{BTreeMap, HashMap}, - fmt::Debug, - hash::Hash, - ptr, - rc::Rc, -}; +use std::{any::Any, cell::RefCell, collections::BTreeMap, fmt::Debug, hash::Hash, ptr, rc::Rc}; /// An ArgumentBuilder that has been built. #[derive(Clone)] @@ -67,7 +59,7 @@ impl<S: Any + Clone> CommandNode<S> { pub fn get_relevant_nodes(&self, input: &mut StringReader) -> Vec<Rc<RefCell<CommandNode<S>>>> { let literals = self.literals(); - if literals.len() > 0 { + if !literals.is_empty() { let cursor = input.cursor(); while input.can_read() && input.peek() != ' ' { input.skip(); @@ -83,18 +75,10 @@ impl<S: Any + Clone> CommandNode<S> { if let Some(literal) = literal { return vec![literal.clone()]; } else { - return self - .arguments() - .values() - .map(|argument| argument.clone()) - .collect(); + return self.arguments().values().cloned().collect(); } } else { - return self - .arguments() - .values() - .map(|argument| argument.clone()) - .collect(); + self.arguments().values().cloned().collect() } } @@ -147,7 +131,7 @@ impl<S: Any + Clone> CommandNode<S> { .expect("Couldn't get result for some reason"); let parsed = ParsedArgument { range: StringRange::between(start, reader.cursor()), - result: result, + result, }; context_builder.with_argument(&argument.name, parsed.clone()); @@ -175,7 +159,7 @@ impl<S: Any + Clone> CommandNode<S> { fn parse(&self, reader: &mut StringReader) -> Option<usize> { match self.value { - ArgumentBuilderType::Argument(ref argument) => { + ArgumentBuilderType::Argument(_) => { panic!("Can't parse argument.") } ArgumentBuilderType::Literal(ref literal) => { @@ -252,7 +236,9 @@ impl<S: Any + Clone> PartialEq for CommandNode<S> { return false; } if let Some(selfexecutes) = &self.command { + // idk how to do this better since we can't compare `dyn Fn`s if let Some(otherexecutes) = &other.command { + #[allow(clippy::vtable_address_comparisons)] if !Rc::ptr_eq(selfexecutes, otherexecutes) { return false; } @@ -260,6 +246,9 @@ impl<S: Any + Clone> PartialEq for CommandNode<S> { return false; } } + else if other.command.is_some() { + return false; + } true } } |
