seedle-macros 1.8.2

cbor codegeneration
Documentation
use super::item::*;
use proc_macro2::{Delimiter, Group, Literal, Punct, Spacing, Span, TokenStream, TokenTree};
use std::matches;
use syn::Ident;
fn mock_ident(name: &str) -> Ident {
    Ident::new(name, Span::call_site())
}
#[test]
fn item_parse_mod() {
    let tokens = TokenStream::from_iter(vec![
        TokenTree::Ident(mock_ident("pub")),
        TokenTree::Ident(mock_ident("mod")),
        TokenTree::Ident(mock_ident("foo")),
        TokenTree::Group(Group::new(
            Delimiter::Brace,
            TokenStream::from_iter(vec![
                TokenTree::Ident(mock_ident("pub")),
                TokenTree::Ident(mock_ident("const")),
                TokenTree::Ident(mock_ident("FOO")),
                TokenTree::Punct(Punct::new(':', Spacing::Alone)),
                TokenTree::Ident(mock_ident("u32")),
                TokenTree::Punct(Punct::new('=', Spacing::Alone)),
                TokenTree::Literal(Literal::u32_unsuffixed(42)),
                TokenTree::Punct(Punct::new(';', Spacing::Alone)),
            ]),
        )),
    ]);

    let item: Mod = syn::parse2(tokens).unwrap();
    assert!(matches!(item, Mod{ident,..} if ident == "foo"));
}