Skip to main content

polars_core/
lib.rs

1#![cfg_attr(docsrs, feature(doc_cfg))]
2#![allow(ambiguous_glob_reexports)]
3#![cfg_attr(
4    feature = "allow_unused",
5    allow(unused, dead_code, irrefutable_let_patterns)
6)] // Maybe be caused by some feature
7// combinations
8extern crate core;
9
10#[macro_use]
11pub mod utils;
12pub mod chunked_array;
13pub mod config;
14pub mod datatypes;
15pub mod error;
16pub mod fmt;
17pub mod frame;
18pub mod functions;
19pub mod hashing;
20mod named_from;
21pub mod prelude;
22pub mod query_result;
23#[cfg(feature = "random")]
24pub mod random;
25pub mod runtime;
26pub mod scalar;
27pub mod schema;
28#[cfg(feature = "serde")]
29pub mod serde;
30pub mod series;
31pub mod testing;
32#[cfg(test)]
33mod tests;
34
35use std::sync::{LazyLock, Mutex};
36
37pub use datatypes::SchemaExtPl;
38pub use hashing::IdBuildHasher;
39
40/// A secret ID used to limit deserialization of raw pointers to those
41/// generated by this instance of Polars.
42pub static PROCESS_ID: LazyLock<u128> = LazyLock::new(|| {
43    let mut bytes = [0u8; 16];
44    getrandom::fill(&mut bytes).unwrap();
45    u128::from_le_bytes(bytes)
46});
47
48// utility for the tests to ensure a single thread can execute
49pub static SINGLE_LOCK: LazyLock<Mutex<()>> = LazyLock::new(|| Mutex::new(()));
50
51/// Default length for a `.head()` call
52pub(crate) const HEAD_DEFAULT_LENGTH: usize = 10;
53/// Default length for a `.tail()` call
54pub(crate) const TAIL_DEFAULT_LENGTH: usize = 10;
55pub const CHEAP_SERIES_HASH_LIMIT: usize = 1000;