1 use crate::parse::{ParseBuffer, ParseStream}; 2 use proc_macro2::TokenStream; 3 use std::iter; 4 between<'a>(begin: ParseBuffer<'a>, end: ParseStream<'a>) -> TokenStream5pub fn between<'a>(begin: ParseBuffer<'a>, end: ParseStream<'a>) -> TokenStream { 6 let end = end.cursor(); 7 let mut cursor = begin.cursor(); 8 let mut tokens = TokenStream::new(); 9 while cursor != end { 10 let (tt, next) = cursor.token_tree().unwrap(); 11 tokens.extend(iter::once(tt)); 12 cursor = next; 13 } 14 tokens 15 } 16