use crate::provider::KnowledgeProvider;
#[cfg(feature = "kimiya")]
pub mod kimiya;
#[cfg(feature = "tanmatra")]
pub mod tanmatra;
#[cfg(feature = "hisab")]
pub mod hisab;
#[cfg(feature = "khanij")]
pub mod khanij;
#[must_use]
#[allow(clippy::vec_init_then_push)]
pub fn all_providers() -> Vec<Box<dyn KnowledgeProvider>> {
#[allow(unused_mut)]
let mut providers: Vec<Box<dyn KnowledgeProvider>> = Vec::new();
#[cfg(feature = "kimiya")]
providers.push(Box::new(kimiya::KimiyaProvider));
#[cfg(feature = "tanmatra")]
providers.push(Box::new(tanmatra::TanmatraProvider));
#[cfg(feature = "hisab")]
providers.push(Box::new(hisab::HisabProvider));
#[cfg(feature = "khanij")]
providers.push(Box::new(khanij::KhanijProvider));
providers
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn all_providers_returns_vec() {
let providers = all_providers();
let _ = providers.len();
}
}