mavlink_bindgen/
binder.rs1use quote::{format_ident, quote};
2use std::io::Write;
3
4pub fn generate<W: Write>(modules: Vec<&str>, out: &mut W) {
5 let modules_tokens = modules.into_iter().map(|module| {
6 let module_ident = format_ident!("{}", module);
7
8 quote! {
9 #[allow(non_camel_case_types)]
10 #[allow(clippy::derive_partial_eq_without_eq)]
11 #[allow(clippy::field_reassign_with_default)]
12 #[allow(non_snake_case)]
13 #[allow(clippy::unnecessary_cast)]
14 #[allow(clippy::bad_bit_mask)]
15 #[allow(clippy::suspicious_else_formatting)]
16 #[cfg(feature = #module)]
17 pub mod #module_ident;
18 }
19 });
20
21 let tokens = quote! {
22 #(#modules_tokens)*
23 };
24
25 writeln!(out, "{tokens}").unwrap();
26}