1pub use chunked_quote_impl::{chunk, chunk_spanned, quote, quote_spanned};
8
9#[doc(hidden)]
10pub mod __private {
11 use std::str::FromStr;
12
13 pub use proc_macro2::{
14 Delimiter::{self, *},
15 Group, Ident, Literal, Punct, Spacing, Span, TokenStream, TokenTree,
16 };
17 pub use quote::ToTokens;
18
19 pub trait TokenStreamExt {
20 fn __push_ident(&mut self, ident: &str, span: Span);
21 fn __push_ident_raw(&mut self, ident: &str, span: Span);
22 fn __push_punct_alone(&mut self, punct: char, span: Span);
23 fn __push_punct_joint(&mut self, punct: char, span: Span);
24 fn __push_literal(&mut self, literal: &str, span: Span);
25 fn __push_group(&mut self, delim: Delimiter, span: Span, stream: TokenStream);
26 }
27 impl TokenStreamExt for TokenStream {
28 fn __push_ident(&mut self, ident: &str, span: Span) {
29 self.extend(Some(Ident::new(ident, span)));
30 }
31 fn __push_ident_raw(&mut self, ident: &str, span: Span) {
32 self.extend(Some(Ident::new_raw(ident, span)));
33 }
34 fn __push_punct_alone(&mut self, punct: char, span: Span) {
35 let mut punct = Punct::new(punct, Spacing::Alone);
36 punct.set_span(span);
37 self.extend(Some(punct));
38 }
39 fn __push_punct_joint(&mut self, punct: char, span: Span) {
40 let mut punct = Punct::new(punct, Spacing::Joint);
41 punct.set_span(span);
42 self.extend(Some(punct));
43 }
44 fn __push_literal(&mut self, literal: &str, span: Span) {
45 let mut literal = Literal::from_str(literal).unwrap();
46 literal.set_span(span);
47 self.extend(Some(literal));
48 }
49 fn __push_group(&mut self, delim: Delimiter, span: Span, stream: TokenStream) {
50 let mut group = Group::new(delim, stream);
51 group.set_span(span);
52 self.extend(Some(group));
53 }
54 }
55}