Skip to main content

zyn_core/ast/
tokens_node.rs

1use proc_macro2::Ident;
2use proc_macro2::Span;
3use proc_macro2::TokenStream;
4
5use quote::quote;
6
7use crate::Expand;
8
9pub struct TokensNode {
10    pub span: Span,
11    pub stream: TokenStream,
12}
13
14impl TokensNode {
15    pub fn span(&self) -> Span {
16        self.span
17    }
18}
19
20impl Expand for TokensNode {
21    fn expand(&self, output: &Ident, _idents: &mut crate::ident::Iter) -> TokenStream {
22        let stream = &self.stream;
23        quote! {
24            #output.extend(::zyn::quote::quote!(#stream));
25        }
26    }
27}