1#![deny(clippy::pedantic)]
2#![allow(clippy::wildcard_imports)]
3
4mod config;
5#[cfg(test)]
6mod tests;
7
8use config::*;
9
10#[proc_macro]
11#[expect(clippy::missing_panics_doc)]
12pub fn import(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
13 if !item.is_empty() {
14 return r#"compile_error!("firefly_import_toml does not take any arguments");"#
15 .parse()
16 .unwrap();
17 }
18 let config = match load_config() {
19 Ok(value) => value,
20 Err(err) => return err,
21 };
22 let mut s = String::new();
23 write_badges(config.badges.unwrap_or_default(), &mut s);
24 write_cheats(config.cheats.unwrap_or_default(), &mut s);
25 write_boards(config.boards.unwrap_or_default(), &mut s);
26
27 s.parse().unwrap()
28}