Skip to main content

firefly_toml/
lib.rs

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}