aboutsummaryrefslogtreecommitdiff
path: root/azalea-brigadier/src/tree.rs
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-04-17 15:57:28 -0500
committermat <github@matdoes.dev>2022-04-17 15:57:28 -0500
commit2e904225611b66fa72b082e4f5e188b55b333fcd (patch)
tree5def0247b2a721ea20eded8ac996d957c591a403 /azalea-brigadier/src/tree.rs
parent10cd1733cbba5c637fa0130a0cd7a7ab6e618226 (diff)
downloadazalea-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.rs33
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
}
}