test_log_macros/lib.rs
1// Copyright (C) 2019-2026 Daniel Mueller <deso@posteo.net>
2// SPDX-License-Identifier: (Apache-2.0 OR MIT)
3
4//! Procedural macro powering `test-log`.
5
6use proc_macro::TokenStream;
7
8use syn::parse_macro_input;
9use syn::Error;
10use syn::ItemFn;
11
12use test_log_core::try_test;
13
14
15// Documented in `test-log` crate's re-export.
16#[allow(missing_docs)]
17#[proc_macro_attribute]
18pub fn test(attr: TokenStream, item: TokenStream) -> TokenStream {
19 let item = parse_macro_input!(item as ItemFn);
20 try_test(attr.into(), item)
21 .unwrap_or_else(Error::into_compile_error)
22 .into()
23}