pub use chunked_quote_impl::{chunk, chunk_spanned, quote, quote_spanned};
#[doc(hidden)]
pub mod __private {
use std::str::FromStr;
pub use proc_macro2::{
Delimiter::{self, *},
Group, Ident, Literal, Punct, Spacing, Span, TokenStream, TokenTree,
};
pub use quote::ToTokens;
pub trait TokenStreamExt {
fn __push_ident(&mut self, ident: &str, span: Span);
fn __push_ident_raw(&mut self, ident: &str, span: Span);
fn __push_punct_alone(&mut self, punct: char, span: Span);
fn __push_punct_joint(&mut self, punct: char, span: Span);
fn __push_literal(&mut self, literal: &str, span: Span);
fn __push_group(&mut self, delim: Delimiter, span: Span, stream: TokenStream);
}
impl TokenStreamExt for TokenStream {
fn __push_ident(&mut self, ident: &str, span: Span) {
self.extend(Some(Ident::new(ident, span)));
}
fn __push_ident_raw(&mut self, ident: &str, span: Span) {
self.extend(Some(Ident::new_raw(ident, span)));
}
fn __push_punct_alone(&mut self, punct: char, span: Span) {
let mut punct = Punct::new(punct, Spacing::Alone);
punct.set_span(span);
self.extend(Some(punct));
}
fn __push_punct_joint(&mut self, punct: char, span: Span) {
let mut punct = Punct::new(punct, Spacing::Joint);
punct.set_span(span);
self.extend(Some(punct));
}
fn __push_literal(&mut self, literal: &str, span: Span) {
let mut literal = Literal::from_str(literal).unwrap();
literal.set_span(span);
self.extend(Some(literal));
}
fn __push_group(&mut self, delim: Delimiter, span: Span, stream: TokenStream) {
let mut group = Group::new(delim, stream);
group.set_span(span);
self.extend(Some(group));
}
}
}