da14531_sdk_macros/
lib.rs

1#![feature(iterator_try_collect)]
2
3mod app_callbacks;
4mod app_custs;
5mod app_diss;
6mod default_handlers_configuration;
7mod main_loop_callbacks;
8
9use app_custs::CustomServer1ServiceConfiguration;
10use app_diss::DeviceInformationServiceConfiguration;
11use proc_macro::TokenStream;
12use syn::parse_macro_input;
13
14use app_callbacks::AppCallbacks;
15use default_handlers_configuration::DefaultHandlersConfiguration;
16use main_loop_callbacks::ArchMainLoopCallbacks;
17
18#[proc_macro]
19pub fn register_main_loop_callbacks(input: TokenStream) -> TokenStream {
20    let callbacks = parse_macro_input!(input as ArchMainLoopCallbacks);
21
22    callbacks.generate().into()
23}
24
25#[proc_macro]
26pub fn register_app_callbacks(input: TokenStream) -> TokenStream {
27    let callbacks = parse_macro_input!(input as AppCallbacks);
28    let x = callbacks.generate();
29
30    x.into()
31}
32
33#[proc_macro]
34pub fn default_handlers_configuration(input: TokenStream) -> TokenStream {
35    let config = parse_macro_input!(input as DefaultHandlersConfiguration);
36
37    config.generate().into()
38}
39
40#[proc_macro]
41pub fn configure_device_information_service(input: TokenStream) -> TokenStream {
42    let config = parse_macro_input!(input as DeviceInformationServiceConfiguration);
43
44    config.generate().into()
45}
46
47#[proc_macro]
48pub fn configure_custom_server1_service(input: TokenStream) -> TokenStream {
49    let mut config = parse_macro_input!(input as CustomServer1ServiceConfiguration);
50
51    match config.generate() {
52        Ok(code) => code.into(),
53        Err(err) => err.into_compile_error().into(),
54    }
55}