diff options
| author | mat <github@matdoes.dev> | 2022-01-09 23:46:23 -0600 |
|---|---|---|
| committer | mat <github@matdoes.dev> | 2022-01-09 23:46:23 -0600 |
| commit | fec7a2bfedc562306523b9d3c51b97e376dc32d9 (patch) | |
| tree | a7f95d0eab97c7fa4a20a8b335feff752ba83dff /azalea-brigadier/src/context | |
| parent | 315f2258190b33c63df7797a97178019f5aea02b (diff) | |
| download | azalea-drasl-fec7a2bfedc562306523b9d3c51b97e376dc32d9.tar.xz | |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Diffstat (limited to 'azalea-brigadier/src/context')
| -rw-r--r-- | azalea-brigadier/src/context/command_context.rs | 6 | ||||
| -rw-r--r-- | azalea-brigadier/src/context/command_context_builder.rs | 14 | ||||
| -rw-r--r-- | azalea-brigadier/src/context/parsed_argument.rs | 6 |
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), |
