flams_system/backend.rs
1use flams_math_archives::{
2 backend::{AnyBackend, GlobalBackend, TemporaryBackend},
3 utils::AsyncEngine,
4};
5
6static MAIN_BACKEND: std::sync::OnceLock<AnyBackend> = std::sync::OnceLock::new();
7pub fn backend() -> &'static AnyBackend {
8 MAIN_BACKEND.get_or_init(|| AnyBackend::Global)
9}
10
11pub fn initialize<A: AsyncEngine>() {
12 let settings = crate::settings::Settings::get();
13 if settings.lsp {
14 MAIN_BACKEND.get_or_init(|| AnyBackend::Temp(TemporaryBackend::new(AnyBackend::Global)));
15 }
16 GlobalBackend.load(settings.mathhubs());
17 A::background(|| {
18 GlobalBackend
19 .triple_store()
20 .load_archives(&GlobalBackend.all_archives());
21 });
22 /*#[cfg(feature = "tantivy")]
23 {
24 #[cfg(feature = "tokio")]
25 flams_utils::background(|| crate::search::Searcher::get().reload());
26 #[cfg(not(feature = "tokio"))]
27 crate::search::Searcher::get().reload();
28 }*/
29}