clickhouse-arrow-derive 0.2.1

Procedural macros for the clickhouse-arrow crate
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
use proc_macro2::{Group, Span, TokenStream, TokenTree};

pub(crate) fn respan(stream: TokenStream, span: Span) -> TokenStream {
    stream.into_iter().map(|token| respan_token(token, span)).collect()
}

fn respan_token(mut token: TokenTree, span: Span) -> TokenTree {
    if let TokenTree::Group(g) = &mut token {
        *g = Group::new(g.delimiter(), respan(g.stream(), span));
    }
    token.set_span(span);
    token
}