1use std::sync::{Arc, LazyLock, Mutex};
2
3static POLARS_NAME: LazyLock<Mutex<Arc<String>>> =
4 LazyLock::new(|| Mutex::new(Arc::new(String::from("Polars (standalone)"))));
5
6static POLARS_VERSION: LazyLock<Mutex<Arc<String>>> =
7 LazyLock::new(|| Mutex::new(Arc::new(String::from(env!("CARGO_PKG_VERSION")))));
8
9static POLARS_BUILD_COMMIT: LazyLock<Mutex<Arc<String>>> =
10 LazyLock::new(|| Mutex::new(Arc::new(String::from("<unknown>"))));
11
12pub fn set_polars_lib_name(name: &str) {
14 *POLARS_NAME.lock().unwrap() = Arc::new(name.into());
15}
16
17pub fn set_polars_lib_version(version: &str) {
19 *POLARS_VERSION.lock().unwrap() = Arc::new(version.into());
20}
21
22pub fn set_polars_lib_build_commit(sha: &str) {
24 *POLARS_BUILD_COMMIT.lock().unwrap() = Arc::new(sha.into());
25}
26
27pub fn get_polars_lib_name() -> Arc<String> {
29 POLARS_NAME.lock().unwrap().clone()
30}
31
32pub fn get_polars_lib_version() -> Arc<String> {
34 POLARS_VERSION.lock().unwrap().clone()
35}
36
37pub fn get_polars_lib_build_commit() -> Arc<String> {
39 POLARS_BUILD_COMMIT.lock().unwrap().clone()
40}