aboutsummaryrefslogtreecommitdiff
path: root/azalea-brigadier/src/context
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-01-09 23:46:23 -0600
committermat <github@matdoes.dev>2022-01-09 23:46:23 -0600
commitfec7a2bfedc562306523b9d3c51b97e376dc32d9 (patch)
treea7f95d0eab97c7fa4a20a8b335feff752ba83dff /azalea-brigadier/src/context
parent315f2258190b33c63df7797a97178019f5aea02b (diff)
downloadazalea-drasl-fec7a2bfedc562306523b9d3c51b97e376dc32d9.tar.xz
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Diffstat (limited to 'azalea-brigadier/src/context')
-rw-r--r--azalea-brigadier/src/context/command_context.rs6
-rw-r--r--azalea-brigadier/src/context/command_context_builder.rs14
-rw-r--r--azalea-brigadier/src/context/parsed_argument.rs6
3 files changed, 17 insertions, 9 deletions
diff --git a/azalea-brigadier/src/context/command_context.rs b/azalea-brigadier/src/context/command_context.rs
index c6210a88..7a2189d9 100644
--- a/azalea-brigadier/src/context/command_context.rs
+++ b/azalea-brigadier/src/context/command_context.rs
@@ -3,7 +3,9 @@ use super::{
string_range::StringRange,
};
use crate::{
- arguments::argument_type::ArgumentType, command::Command, redirect_modifier::RedirectModifier,
+ arguments::argument_type::{ArgumentResult, ArgumentType},
+ command::Command,
+ redirect_modifier::RedirectModifier,
tree::command_node::CommandNode,
};
use std::collections::HashMap;
@@ -12,7 +14,7 @@ pub struct CommandContext<S> {
source: S,
input: String,
command: dyn Command<S>,
- arguments: HashMap<String, ParsedArgument<S, dyn ArgumentType>>,
+ arguments: HashMap<String, ParsedArgument<dyn ArgumentType<dyn ArgumentResult>>>,
root_node: dyn CommandNode<S>,
nodes: Vec<ParsedCommandNode<S>>,
range: StringRange,
diff --git a/azalea-brigadier/src/context/command_context_builder.rs b/azalea-brigadier/src/context/command_context_builder.rs
index e74b5b1c..ac4a36bb 100644
--- a/azalea-brigadier/src/context/command_context_builder.rs
+++ b/azalea-brigadier/src/context/command_context_builder.rs
@@ -1,8 +1,10 @@
use std::collections::HashMap;
use crate::{
- arguments::argument_type::ArgumentType, command::Command,
- command_dispatcher::CommandDispatcher, redirect_modifier::RedirectModifier,
+ arguments::argument_type::{ArgumentResult, ArgumentType},
+ command::Command,
+ command_dispatcher::CommandDispatcher,
+ redirect_modifier::RedirectModifier,
tree::command_node::CommandNode,
};
@@ -26,7 +28,7 @@ use super::{
#[derive(Clone)]
pub struct CommandContextBuilder<S> {
- arguments: HashMap<String, ParsedArgument<S, dyn ArgumentType>>,
+ arguments: HashMap<String, ParsedArgument<dyn ArgumentType<dyn ArgumentResult>>>,
root_node: dyn CommandNode<S>,
nodes: Vec<ParsedCommandNode<S>>,
dispatcher: CommandDispatcher<S>,
@@ -77,13 +79,15 @@ impl<S> CommandContextBuilder<S> {
pub fn with_argument(
mut self,
name: String,
- argument: ParsedArgument<S, dyn ArgumentType>,
+ argument: ParsedArgument<dyn ArgumentType<dyn ArgumentResult>>,
) -> Self {
self.arguments.insert(name, argument);
self
}
- pub fn arguments(&self) -> &HashMap<String, ParsedArgument<S, dyn ArgumentType>> {
+ pub fn arguments(
+ &self,
+ ) -> &HashMap<String, ParsedArgument<dyn ArgumentType<dyn ArgumentResult>>> {
&self.arguments
}
diff --git a/azalea-brigadier/src/context/parsed_argument.rs b/azalea-brigadier/src/context/parsed_argument.rs
index 5f9c2cdb..77a47078 100644
--- a/azalea-brigadier/src/context/parsed_argument.rs
+++ b/azalea-brigadier/src/context/parsed_argument.rs
@@ -1,12 +1,14 @@
+use std::marker::PhantomData;
+
use super::string_range::StringRange;
#[derive(PartialEq, Eq, Hash)]
-pub struct ParsedArgument<S, T> {
+pub struct ParsedArgument<T> {
range: StringRange,
result: T,
}
-impl<S, T> ParsedArgument<S, T> {
+impl<T> ParsedArgument<T> {
fn new(start: usize, end: usize, result: T) -> Self {
Self {
range: StringRange::between(start, end),