pub struct GroupDeterminer { /* private fields */ }Expand description
GroupDeterminer is used to determine any Combinator or separator (for ex. ,) in ParseStream
Implementations§
Source§impl GroupDeterminer
impl GroupDeterminer
Sourcepub const fn new_const(
combinator: Option<Combinator>,
check_input_fn: *const (),
validate_parsed: bool,
length: u8,
) -> Self
pub const fn new_const( combinator: Option<Combinator>, check_input_fn: *const (), validate_parsed: bool, length: u8, ) -> Self
Constructs new GroupDeterminer using const fn (can be used to create const or static item).
§Example:
extern crate join_impl;
extern crate syn;
use syn::Token;
use syn::parse::ParseStream;
use join_impl::chain::group::GroupDeterminer;
fn check_input(input: ParseStream) -> bool { input.peek(Token![,]) }
let first_comma_determiner = GroupDeterminer::new_const(
None, // Because comma is not a command group
check_input as *const (),
false,
1
);Sourcepub fn new(
combinator: impl Into<Option<Combinator>>,
check_input_fn: CheckStreamFn,
validate_parsed: bool,
length: u8,
) -> Self
pub fn new( combinator: impl Into<Option<Combinator>>, check_input_fn: CheckStreamFn, validate_parsed: bool, length: u8, ) -> Self
Constructs new GroupDeterminer.
§Example:
extern crate join_impl;
extern crate syn;
use syn::Token;
use syn::parse::ParseStream;
use join_impl::chain::group::GroupDeterminer;
fn check_input(input: ParseStream) -> bool { input.peek(Token![,]) }
let first_comma_determiner = GroupDeterminer::new(
None, // Because comma is not a command group
check_input,
false,
1
);Sourcepub fn combinator(&self) -> Option<Combinator>
pub fn combinator(&self) -> Option<Combinator>
Returns type of group of GroupDeterminer.
Sourcepub fn check_input(&self, input: ParseStream<'_>) -> bool
pub fn check_input(&self, input: ParseStream<'_>) -> bool
Checks if input next tokens are of self group type.
Sourcepub fn check_parsed<T: Parse>(&self, input: TokenStream) -> bool
pub fn check_parsed<T: Parse>(&self, input: TokenStream) -> bool
Checks already parsed tokens. In many cases it’s used to check if parsed tokens are valid expression. in this case we can say for sure that we found separator.
Sourcepub fn erase_input<'b>(&self, input: ParseStream<'b>) -> Result<ParseStream<'b>>
pub fn erase_input<'b>(&self, input: ParseStream<'b>) -> Result<ParseStream<'b>>
Used to parse length tokens of type TokenTree from input ParseStream.
Trait Implementations§
Source§impl Clone for GroupDeterminer
impl Clone for GroupDeterminer
Source§fn clone(&self) -> GroupDeterminer
fn clone(&self) -> GroupDeterminer
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for GroupDeterminer
impl RefUnwindSafe for GroupDeterminer
impl Send for GroupDeterminer
impl Sync for GroupDeterminer
impl Unpin for GroupDeterminer
impl UnwindSafe for GroupDeterminer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more