Function manyhow::derive

source ·
pub fn derive<Item: AnyTokenStream, Dummy: AnyTokenStream, Output: MacroOutput, Return: AnyTokenStream, Function>(
    item: impl AnyTokenStream,
    body: impl DeriveMacroHandler<Function, Item = Item, Dummy = Dummy, Output = Output>
) -> Return
Expand description

Handles proc_macro_derive implementation.

Use derive! to support Parse and ToTokens as well.

Takes any TokenStream for item and returns any TokenStream. body takes a DeriveMacroHandler with one TokenStream parameter. And an optional &mut Emitter and &mut TokenStream for storing a dummy output.

use manyhow::{derive, Emitter, Result};
use proc_macro2::TokenStream;
derive(
    item,
    |item: TokenStream, dummy: &mut TokenStream, emitter: &mut Emitter| -> Result {
        // ..
    },
);