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 | |
} |