arrowspace/
lib.rs

1/// Copyright (2025) Mec-iS, tuned.org.uk
2//    Licensed under the Apache License, Version 2.0 (the "License");
3//    you may not use this file except in compliance with the License.
4//    You may obtain a copy of the License at
5//
6//        http://www.apache.org/licenses/LICENSE-2.0
7//
8//    Unless required by applicable law or agreed to in writing, software
9//    distributed under the License is distributed on an "AS IS" BASIS,
10//    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11//    See the License for the specific language governing permissions and
12//    limitations under the License.
13pub mod builder;
14pub mod clustering;
15pub mod core;
16pub mod eigenmaps;
17pub mod energymaps;
18pub mod graph;
19pub mod laplacian;
20pub mod motives;
21pub mod reduction;
22pub mod sampling;
23pub mod sorted_index;
24pub mod sparsification;
25pub mod subgraphs;
26pub mod taumode;
27
28#[cfg(feature = "storage")]
29pub mod storage;
30
31#[cfg(test)]
32mod tests;
33
34use std::sync::Once;
35
36static INIT: Once = Once::new();
37
38pub fn init() {
39    INIT.call_once(|| {
40        // Read RUST_LOG env variable, default to "info" if not set
41        let env = env_logger::Env::default().default_filter_or("debug");
42
43        // don't panic if called multiple times across binaries
44        let _ = env_logger::Builder::from_env(env)
45            .is_test(true) // nicer formatting for tests
46            .try_init();
47    });
48}