rlst_proc_macro/
lib.rs

1//! Proc Macros for the rlst library
2#![cfg_attr(feature = "strict", deny(warnings))]
3#![warn(missing_docs)]
4
5use proc_macro::TokenStream;
6
7mod dense;
8mod tracing;
9
10/// Create a dynamic array
11#[proc_macro]
12pub fn rlst_dynamic_array(items: TokenStream) -> TokenStream {
13    dense::rlst_dynamic_array_impl(items)
14}
15
16/// Create a static array
17#[proc_macro]
18pub fn rlst_static_array(items: TokenStream) -> TokenStream {
19    dense::rlst_static_array_impl(items)
20}
21
22/// Type of a static array
23#[proc_macro]
24pub fn rlst_static_type(items: TokenStream) -> TokenStream {
25    dense::rlst_static_type_impl(items)
26}
27
28/// Trace the execution time of a function
29#[proc_macro_attribute]
30pub fn measure_duration(attr: TokenStream, item: TokenStream) -> TokenStream {
31    tracing::measure_duration_impl(attr, item)
32}