apollo_opentelemetry_macros/lib.rs
1//! Macros for the `apollo-opentelemetry` crate.
2//! See `apollo-opentelemetry` crate for documentation.
3#![doc(hidden)]
4#![forbid(unsafe_code)]
5
6use proc_macro::TokenStream;
7
8mod span;
9mod traced;
10
11#[proc_macro_attribute]
12pub fn traced(attr: TokenStream, item: TokenStream) -> TokenStream {
13 traced::expand(attr.into(), item.into())
14 .unwrap_or_else(|e| e.to_compile_error())
15 .into()
16}
17
18/// Creates a new span using OpenTelemetry.
19///
20/// See `apollo_opentelemetry::span!` for full documentation.
21#[proc_macro]
22pub fn span(input: TokenStream) -> TokenStream {
23 span::expand(input.into())
24 .unwrap_or_else(|e| e.to_compile_error())
25 .into()
26}