da14531_sdk_macros/
lib.rs1#![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}