use bonsai_lang_api::{AdapterArc, LanguageRegistry};
use std::sync::Arc;
#[must_use]
pub fn all_adapters() -> Vec<AdapterArc> {
vec![
Arc::new(bonsai_lang_c::CAdapter::new()),
Arc::new(bonsai_lang_cpp::CppAdapter::new()),
Arc::new(bonsai_lang_csharp::CSharpAdapter::new()),
Arc::new(bonsai_lang_scala::ScalaAdapter::new()),
Arc::new(bonsai_lang_rust::RustAdapter::new()),
Arc::new(bonsai_lang_go::GoAdapter::new()),
Arc::new(bonsai_lang_java::JavaAdapter::new()),
Arc::new(bonsai_lang_kotlin::KotlinAdapter::new()),
Arc::new(bonsai_lang_swift::SwiftAdapter::new()),
Arc::new(bonsai_lang_javascript::JavaScriptAdapter::new()),
Arc::new(bonsai_lang_typescript::TypeScriptAdapter::new()),
Arc::new(bonsai_lang_php::PhpAdapter::new()),
Arc::new(bonsai_lang_python::PythonAdapter::new()),
Arc::new(bonsai_lang_perl::PerlAdapter::new()),
Arc::new(bonsai_lang_ruby::RubyAdapter::new()),
Arc::new(bonsai_lang_dart::DartAdapter::new()),
Arc::new(bonsai_lang_objc::ObjCAdapter::new()),
Arc::new(bonsai_lang_lua::LuaAdapter::new()),
Arc::new(bonsai_lang_elixir::ElixirAdapter::new()),
Arc::new(bonsai_lang_erlang::ErlangAdapter::new()),
]
}
#[must_use]
pub fn all_languages_registry() -> Arc<LanguageRegistry> {
let registry = Arc::new(LanguageRegistry::new());
for adapter in all_adapters() {
registry.register(adapter);
}
registry
}
#[cfg(test)]
#[path = "tests.rs"]
mod tests;