diff options
Diffstat (limited to 'mingling_picker/src/picker')
| -rw-r--r-- | mingling_picker/src/picker/patterns.rs | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/mingling_picker/src/picker/patterns.rs b/mingling_picker/src/picker/patterns.rs index 74a8cd8..80632d5 100644 --- a/mingling_picker/src/picker/patterns.rs +++ b/mingling_picker/src/picker/patterns.rs @@ -1,12 +1,26 @@ -use crate::{Pickable, PickerArguments, PickerRequirement}; +use crate::{Pickable, Picker, PickerArguments, PickerRequirement, PickerResult}; mingling_picker_macros::internal_repeat! (1..=32 => { - pub struct PickerPattern$<'a, (Type$,)+> - where (Type$: Pickable + Default,)+ + pub struct PickerPattern$<'a, (T$,)+> + where (T$: Pickable + Default,)+ { pub args: PickerArguments<'a>, ( - pub require_$: PickerRequirement<'a, Type$>, + pub require_$: &'a PickerRequirement<'a, T$>, + pub result_$: PickerResult<T$>, )+ } }); + +impl<'a> Picker<'a> { + pub fn pick<N>(self, req: &'a PickerRequirement<'a, N>) -> PickerPattern1<'a, N> + where + N: Pickable + Default, + { + PickerPattern1 { + args: self.args, + require_1: req, + result_1: PickerResult::Unparsed, + } + } +} |
