Files
ansi_term
anyhow
atty
bcs
bincode
bitflags
clap
dtoa
glob
heck
include_dir
include_dir_impl
lazy_static
libc
linked_hash_map
maplit
once_cell
proc_macro2
proc_macro_error
proc_macro_error_attr
proc_macro_hack
quote
serde
serde_bytes
serde_derive
serde_generate
serde_name
serde_reflection
serde_yaml
serdegen
smawk
strsim
structopt
structopt_derive
syn
textwrap
thiserror
thiserror_impl
unicode_segmentation
unicode_width
unicode_xid
vec_map
yaml_rust
 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
}