pub struct Group { /* private fields */ }
Expand description
A delimited token stream.
A Group
internally contains a TokenStream
which is surrounded by
Delimiter
s.
Implementations§
Source§impl Group
impl Group
Sourcepub fn new(delimiter: Delimiter, stream: TokenStream) -> Group
pub fn new(delimiter: Delimiter, stream: TokenStream) -> Group
Creates a new Group
with the given delimiter and token stream.
This constructor will set the span for this group to
Span::call_site()
. To change the span you can use the set_span
method below.
Sourcepub fn delimiter(&self) -> Delimiter
pub fn delimiter(&self) -> Delimiter
Returns the punctuation used as the delimiter for this group: a set of parentheses, square brackets, or curly braces.
Sourcepub fn stream(&self) -> TokenStream
pub fn stream(&self) -> TokenStream
Returns the TokenStream
of tokens that are delimited in this Group
.
Note that the returned token stream does not include the delimiter returned above.
Sourcepub fn span(&self) -> Span
pub fn span(&self) -> Span
Returns the span for the delimiters of this token stream, spanning the
entire Group
.
pub fn span(&self) -> Span {
^^^^^^^
Sourcepub fn span_open(&self) -> Span
pub fn span_open(&self) -> Span
Returns the span pointing to the opening delimiter of this group.
pub fn span_open(&self) -> Span {
^
Sourcepub fn span_close(&self) -> Span
pub fn span_close(&self) -> Span
Returns the span pointing to the closing delimiter of this group.
pub fn span_close(&self) -> Span {
^
Sourcepub fn delim_span(&self) -> DelimSpan
pub fn delim_span(&self) -> DelimSpan
Returns an object that holds this group’s span_open()
and
span_close()
together (in a more compact representation than holding
those 2 spans individually).
Trait Implementations§
Source§impl Display for Group
Prints the group as a string that should be losslessly convertible back
into the same group (modulo spans), except for possibly TokenTree::Group
s
with Delimiter::None
delimiters.
impl Display for Group
Prints the group as a string that should be losslessly convertible back
into the same group (modulo spans), except for possibly TokenTree::Group
s
with Delimiter::None
delimiters.
Source§impl From<BraceGroup> for Group
impl From<BraceGroup> for Group
Source§fn from(group: BraceGroup) -> Group
fn from(group: BraceGroup) -> Group
Source§impl From<BracketGroup> for Group
impl From<BracketGroup> for Group
Source§fn from(group: BracketGroup) -> Group
fn from(group: BracketGroup) -> Group
Source§impl From<ParenthesisGroup> for Group
impl From<ParenthesisGroup> for Group
Source§fn from(group: ParenthesisGroup) -> Group
fn from(group: ParenthesisGroup) -> Group
Source§impl Parser for Group
impl Parser for Group
Source§fn parser(
tokens: &mut ShadowCountedIter<'_, <TokenStream as IntoIterator>::IntoIter>,
) -> Result<Group, Error>
fn parser( tokens: &mut ShadowCountedIter<'_, <TokenStream as IntoIterator>::IntoIter>, ) -> Result<Group, Error>
tokens
iterator directly. It should not be called from user code except for implementing
parsers itself and then only when the rules below are followed. Read moreSource§impl ToTokens for Group
impl ToTokens for Group
Source§fn to_tokens(&self, tokens: &mut TokenStream)
fn to_tokens(&self, tokens: &mut TokenStream)
&self
to the given TokenStream
.Source§fn to_token_iter(
&self,
) -> ShadowCountedIter<'_, <TokenStream as IntoIterator>::IntoIter> ⓘ
fn to_token_iter( &self, ) -> ShadowCountedIter<'_, <TokenStream as IntoIterator>::IntoIter> ⓘ
&self
into a TokenIter
object.Source§fn into_token_iter<'a>(
self,
) -> ShadowCountedIter<'a, <TokenStream as IntoIterator>::IntoIter> ⓘwhere
Self: Sized,
fn into_token_iter<'a>(
self,
) -> ShadowCountedIter<'a, <TokenStream as IntoIterator>::IntoIter> ⓘwhere
Self: Sized,
self
into a TokenIter
object.Source§fn to_token_stream(&self) -> TokenStream
fn to_token_stream(&self) -> TokenStream
&self
into a TokenStream
object.Source§fn into_token_stream(self) -> TokenStreamwhere
Self: Sized,
fn into_token_stream(self) -> TokenStreamwhere
Self: Sized,
self
into a TokenStream
object.Auto Trait Implementations§
impl Freeze for Group
impl RefUnwindSafe for Group
impl !Send for Group
impl !Sync for Group
impl Unpin for Group
impl UnwindSafe for Group
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Parse for Twhere
T: Parser,
impl<T> Parse for Twhere
T: Parser,
Source§fn parse(
tokens: &mut ShadowCountedIter<'_, <TokenStream as IntoIterator>::IntoIter>,
) -> Result<Self, Error>
fn parse( tokens: &mut ShadowCountedIter<'_, <TokenStream as IntoIterator>::IntoIter>, ) -> Result<Self, Error>
parser()
within a
transaction. Commits changes on success and returns the parsed value. Read moreSource§fn parse_all(
tokens: &mut ShadowCountedIter<'_, <TokenStream as IntoIterator>::IntoIter>,
) -> Result<Self, Error>
fn parse_all( tokens: &mut ShadowCountedIter<'_, <TokenStream as IntoIterator>::IntoIter>, ) -> Result<Self, Error>
EndOfStream
at the end. Thus it will error if parsing is not exhaustive. Read moreSource§fn parse_with<T>(
tokens: &mut ShadowCountedIter<'_, <TokenStream as IntoIterator>::IntoIter>,
f: impl FnOnce(Self, &mut ShadowCountedIter<'_, <TokenStream as IntoIterator>::IntoIter>) -> Result<T, Error>,
) -> Result<T, Error>
fn parse_with<T>( tokens: &mut ShadowCountedIter<'_, <TokenStream as IntoIterator>::IntoIter>, f: impl FnOnce(Self, &mut ShadowCountedIter<'_, <TokenStream as IntoIterator>::IntoIter>) -> Result<T, Error>, ) -> Result<T, Error>
FnOnce(Self, &mut TokenIter) -> Result<T>
closure which
creates a new result or returns an Error. Read more