autumn-macros 0.4.0

Proc macros for the Autumn web framework
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//! `routes![]` collection macro implementation.
//!
//! Expands `routes![handler_a, handler_b]` into a `Vec<Route>` by calling
//! the companion `__autumn_route_info_{name}()` functions generated by the
//! route attribute macros.

use proc_macro2::TokenStream;

/// Expand a comma-separated list of handler paths into a `Vec<Route>`.
///
/// Each path's last segment is transformed from `name` to
/// `__autumn_route_info_name`, so module-qualified paths like `users::list`
/// become `users::__autumn_route_info_list`.
pub fn routes_macro(input: TokenStream) -> TokenStream {
    crate::collect::collect_companions(input, "__autumn_route_info_")
}