mod ability; mod databases; mod util; use {multisql::Glue, util::*}; inventory::collect!(Test); inventory::collect!(TestDatabase); struct TestDatabase { init: fn(&str) -> Glue, name: &'static str, exceptions: &'static [&'static str], } fn main() { announce_test_suite!(); for database in inventory::iter:: { announce!(format!("[Database]\t{}", database.name)); for test in inventory::iter:: { let name = test .name .strip_prefix(concat!(module_path!(), "::", "ability::")) .unwrap(); if !database .exceptions .iter() .any(|exception| name.starts_with(exception)) { run!(test, database.init); } } } }