etest-impl 0.3.0

Implementation of etest's proc_macro part
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use proc_macro::{Delimiter, Group, Ident, Literal, Punct, Spacing, Span, TokenStream, TokenTree};

pub fn err(span: Span, msg: &str) -> TokenStream {
    eprintln!("{:?} {msg}", span);

    [
        TokenTree::Ident(Ident::new("compile_error", span)),
        TokenTree::Punct(Punct::new('!', Spacing::Alone)),
        TokenTree::Group(Group::new(
            Delimiter::Parenthesis,
            [TokenTree::Literal(Literal::string(msg))].into_iter().collect(),
        ))
    ].into_iter().collect()
}

pub fn empty_args() -> TokenTree {
    TokenTree::Group(Group::new(Delimiter::Parenthesis, TokenStream::new()))
}