vimwiki_macros 0.1.0

Macro library that provides macros to generate vimwiki language at compile time.
Documentation
use crate::tokens::{
    utils::root_crate, utils::tokenize_option, Tokenize, TokenizeContext,
};
use proc_macro2::TokenStream;
use quote::quote;
use vimwiki_core::MathBlock;

impl_tokenize!(tokenize_math_block, MathBlock<'a>, 'a);
fn tokenize_math_block(
    ctx: &TokenizeContext,
    math_block: &MathBlock,
) -> TokenStream {
    let root = root_crate();
    let lines = math_block.lines.iter().map(|x| do_tokenize!(ctx, x));
    let environment =
        tokenize_option(ctx, &math_block.environment, |ctx, x| {
            do_tokenize!(ctx, x)
        });
    quote! {
        #root::MathBlock::new(
            ::std::vec![#(#lines),*],
            #environment,
        )
    }
}