aboutsummaryrefslogtreecommitdiff
path: root/azalea-brigadier/src/arguments
diff options
context:
space:
mode:
Diffstat (limited to 'azalea-brigadier/src/arguments')
-rw-r--r--azalea-brigadier/src/arguments/argument_type.rs12
-rw-r--r--azalea-brigadier/src/arguments/bool_argument_type.rs2
2 files changed, 10 insertions, 4 deletions
diff --git a/azalea-brigadier/src/arguments/argument_type.rs b/azalea-brigadier/src/arguments/argument_type.rs
index 34d57285..ea453a1a 100644
--- a/azalea-brigadier/src/arguments/argument_type.rs
+++ b/azalea-brigadier/src/arguments/argument_type.rs
@@ -5,7 +5,12 @@ use crate::{
suggestion::{suggestions::Suggestions, suggestions_builder::SuggestionsBuilder},
};
-pub trait ArgumentType {
+pub trait ArgumentResult {}
+
+pub trait ArgumentType<T>
+where
+ T: ArgumentResult,
+{
// T parse(StringReader reader) throws CommandSyntaxException;
// default <S> CompletableFuture<Suggestions> listSuggestions(final CommandContext<S> context, final SuggestionsBuilder builder) {
@@ -16,12 +21,13 @@ pub trait ArgumentType {
// return Collections.emptyList();
// }
- fn parse<T>(reader: &mut StringReader) -> Result<T, CommandSyntaxException>;
+ fn parse(&self, reader: &mut StringReader) -> Result<T, CommandSyntaxException>;
fn list_suggestions<S>(
+ &self,
context: &CommandContext<S>,
builder: &mut SuggestionsBuilder,
) -> Result<Suggestions, CommandSyntaxException>;
- fn get_examples() -> Vec<String>;
+ fn get_examples(&self) -> Vec<String>;
}
diff --git a/azalea-brigadier/src/arguments/bool_argument_type.rs b/azalea-brigadier/src/arguments/bool_argument_type.rs
index f4c03373..74df3331 100644
--- a/azalea-brigadier/src/arguments/bool_argument_type.rs
+++ b/azalea-brigadier/src/arguments/bool_argument_type.rs
@@ -4,7 +4,7 @@ use super::argument_type::ArgumentType;
struct BoolArgumentType {}
-impl ArgumentType for BoolArgumentType {}
+impl ArgumentType<bool> for BoolArgumentType {}
impl BoolArgumentType {
const EXAMPLES: &'static [&'static str] = &["true", "false"];