aboutsummaryrefslogtreecommitdiff
path: root/azalea-brigadier/src/builder/required_argument_builder.rs
diff options
context:
space:
mode:
authorUbuntu <github@matdoes.dev>2022-01-13 00:43:09 +0000
committerUbuntu <github@matdoes.dev>2022-01-13 00:43:09 +0000
commiteb111be1f107696939b994f5de6e060cf972a732 (patch)
tree055deab4179088c5e91a179bfe465a7859c45ab6 /azalea-brigadier/src/builder/required_argument_builder.rs
parent270507736af57aae6801dc9eb3c3132139d0d07b (diff)
downloadazalea-drasl-eb111be1f107696939b994f5de6e060cf972a732.tar.xz
a
Diffstat (limited to 'azalea-brigadier/src/builder/required_argument_builder.rs')
-rw-r--r--azalea-brigadier/src/builder/required_argument_builder.rs33
1 files changed, 14 insertions, 19 deletions
diff --git a/azalea-brigadier/src/builder/required_argument_builder.rs b/azalea-brigadier/src/builder/required_argument_builder.rs
index b5f99828..29af7f6f 100644
--- a/azalea-brigadier/src/builder/required_argument_builder.rs
+++ b/azalea-brigadier/src/builder/required_argument_builder.rs
@@ -1,30 +1,25 @@
use crate::{
- arguments::argument_type::{ArgumentType, Types},
+ arguments::argument_type::ArgumentType,
suggestion::suggestion_provider::SuggestionProvider,
tree::{argument_command_node::ArgumentCommandNode, command_node::BaseCommandNode},
};
+use std::any::Any;
use super::argument_builder::BaseArgumentBuilder;
-pub struct RequiredArgumentBuilder<'a, S, T>
-where
- T: ArgumentType<dyn Types>,
-{
+pub struct RequiredArgumentBuilder<'a, S> {
// private final String name;
// private final ArgumentType<T> type;
// private SuggestionProvider<S> suggestionsProvider = null;
name: String,
- type_: &'a T,
- suggestions_provider: Option<&'a dyn SuggestionProvider<S, T>>,
+ type_: Box<dyn ArgumentType<Into = dyn Any>>,
+ suggestions_provider: Option<&'a dyn SuggestionProvider<S>>,
- pub base: BaseArgumentBuilder<'a, S, T>,
+ pub base: BaseArgumentBuilder<'a, S>,
}
-impl<'a, S, T> RequiredArgumentBuilder<'a, S, T>
-where
- T: ArgumentType<dyn Types>,
-{
- pub fn new(name: String, type_: T) -> Self {
+impl<'a, S> RequiredArgumentBuilder<'a, S> {
+ pub fn new(name: String, type_: dyn ArgumentType<Into = dyn Any>) -> Self {
Self {
name,
type_: &type_,
@@ -33,20 +28,20 @@ where
}
}
- pub fn argument(name: String, type_: T) -> Self {
+ pub fn argument(name: String, type_: dyn ArgumentType<Into = dyn Any>) -> Self {
Self::new(name, type_)
}
- pub fn suggests(mut self, provider: &dyn SuggestionProvider<S, T>) -> Self {
+ pub fn suggests(mut self, provider: &dyn SuggestionProvider<S>) -> Self {
self.suggestions_provider = Some(provider);
self
}
- pub fn suggestions_provider(&self) -> Option<&dyn SuggestionProvider<S, T>> {
+ pub fn suggestions_provider(&self) -> Option<&dyn SuggestionProvider<S>> {
self.suggestions_provider.as_ref()
}
- pub fn get_type(&self) -> &T {
+ pub fn get_type(&self) -> &dyn ArgumentType<Into = dyn Any> {
self.type_
}
@@ -54,14 +49,14 @@ where
self.name
}
- // final ArgumentCommandNode<S, T> result = new ArgumentCommandNode<>(getName(), getType(), getCommand(), getRequirement(), getRedirect(), getRedirectModifier(), isFork(), getSuggestionsProvider());
+ // final ArgumentCommandNode<S> result = new ArgumentCommandNode<>(getName(), getType(), getCommand(), getRequirement(), getRedirect(), getRedirectModifier(), isFork(), getSuggestionsProvider());
// for (final CommandNode<S> argument : getArguments()) {
// result.addChild(argument);
// }
// return result;
- pub fn build(self) -> ArgumentCommandNode<'a, S, T> {
+ pub fn build(self) -> ArgumentCommandNode<'a, S> {
let result = ArgumentCommandNode {
name: self.name,
type_: &self.type_,