iocaine 3.0.0

The deadliest poison known to AI
Documentation
// SPDX-FileCopyrightText: 2025 Gergely Nagy
// SPDX-FileContributor: Gergely Nagy
//
// SPDX-License-Identifier: MIT

pub mod fake_moustache;
pub mod garglebargle;
pub mod gobbledygook;
pub mod qr_journey;
pub mod wurstsalat_generator_pro;

pub use fake_moustache::FakeMoustache;
pub use garglebargle::GargleBargle;
pub use gobbledygook::GobbledyGook;
pub use qr_journey::QRJourney;
pub use wurstsalat_generator_pro::WurstsalatGeneratorPro;

use rust_embed::Embed;

#[derive(Embed)]
#[folder = "src/"]
#[prefix = "/src/"]
pub struct Arduino;

#[derive(Embed)]
#[folder = "data/"]
#[prefix = "/"]
#[exclude = "container/config.d/**"]
pub struct QMK;

pub struct SquashFS;

impl SquashFS {
    pub fn iter() -> impl Iterator<Item = std::borrow::Cow<'static, str>> {
        Arduino::iter().chain(QMK::iter())
    }

    #[must_use]
    pub fn get(file_path: &str) -> Option<rust_embed::EmbeddedFile> {
        Arduino::get(file_path).or_else(|| QMK::get(file_path))
    }
}