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}