firmware_controller/
lib.rs1#![doc = include_str!("../README.md")]
2
3use proc_macro::TokenStream;
4use syn::{parse_macro_input, punctuated::Punctuated, ItemMod, Meta, Token};
5
6mod controller;
7mod util;
8
9#[proc_macro_attribute]
11pub fn controller(attr: TokenStream, item: TokenStream) -> TokenStream {
12 let _args = parse_macro_input!(attr with Punctuated<Meta, Token![,]>::parse_terminated);
13
14 let input = parse_macro_input!(item as ItemMod);
15 controller::expand_module(input)
16 .unwrap_or_else(|e| e.to_compile_error())
17 .into()
18}