diff --git a/src/expr.rs b/src/expr.rs index bb0f6ba..b33c817 100644 --- a/src/expr.rs +++ b/src/expr.rs @@ -3,9 +3,7 @@ use proc_macro::token_stream::IntoIter as TokenIter; use proc_macro::{Spacing, Span, TokenStream, TokenTree}; use std::iter; -pub struct Expr(TokenStream); - -pub fn parse(input: &mut TokenIter) -> Result { +pub fn parse(input: &mut TokenIter) -> Result { #[derive(PartialEq)] enum Lookbehind { JointColon, @@ -25,7 +23,7 @@ pub fn parse(input: &mut TokenIter) -> Result { let spacing = punct.spacing(); expr.extend(iter::once(TokenTree::Punct(punct))); lookbehind = match ch { - ',' if angle_bracket_depth == 0 => return Ok(Expr(expr)), + ',' if angle_bracket_depth == 0 => return Ok(expr), ':' if lookbehind == Lookbehind::JointColon => Lookbehind::DoubleColon, ':' if spacing == Spacing::Joint => Lookbehind::JointColon, '<' if lookbehind == Lookbehind::DoubleColon => { @@ -50,9 +48,3 @@ pub fn parse(input: &mut TokenIter) -> Result { } } } - -impl Expr { - pub fn into_tokens(self) -> TokenStream { - self.0 - } -} diff --git a/src/lib.rs b/src/lib.rs index 2056292..a10066f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -121,7 +121,6 @@ mod expr; mod unindent; use crate::error::{Error, Result}; -use crate::expr::Expr; use crate::unindent::unindent; use proc_macro::token_stream::IntoIter as TokenIter; use proc_macro::{Delimiter, Group, Ident, Literal, Punct, Spacing, Span, TokenStream, TokenTree}; @@ -320,7 +319,7 @@ fn try_expand(input: TokenStream, mode: Macro) -> Result { TokenTree::Group(Group::new( Delimiter::Brace, prefix - .map_or_else(TokenStream::new, Expr::into_tokens) + .unwrap_or_else(TokenStream::new) .into_iter() .chain(iter::once(TokenTree::Literal(unindented_lit))) .chain(input)