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