mirror of
https://github.com/hinto-janai/cuprate.git
synced 2024-12-22 19:49:33 +00:00
database/helper: define static
s within functions (#135)
This commit is contained in:
parent
e8b20e6115
commit
1e857416c9
2 changed files with 6 additions and 11 deletions
|
@ -85,8 +85,6 @@ impl Default for ResizeAlgorithm {
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------- Free functions
|
//---------------------------------------------------------------------------------------------------- Free functions
|
||||||
/// Cached result of [`page_size()`].
|
|
||||||
static PAGE_SIZE: OnceLock<NonZeroUsize> = OnceLock::new();
|
|
||||||
/// This function retrieves the system’s memory page size.
|
/// This function retrieves the system’s memory page size.
|
||||||
///
|
///
|
||||||
/// It is just [`page_size::get`](https://docs.rs/page_size) internally.
|
/// It is just [`page_size::get`](https://docs.rs/page_size) internally.
|
||||||
|
@ -97,6 +95,8 @@ static PAGE_SIZE: OnceLock<NonZeroUsize> = OnceLock::new();
|
||||||
/// This function will panic if the OS returns of page size of `0` (impossible?).
|
/// This function will panic if the OS returns of page size of `0` (impossible?).
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn page_size() -> NonZeroUsize {
|
pub fn page_size() -> NonZeroUsize {
|
||||||
|
/// Cached result of [`page_size()`].
|
||||||
|
static PAGE_SIZE: OnceLock<NonZeroUsize> = OnceLock::new();
|
||||||
*PAGE_SIZE
|
*PAGE_SIZE
|
||||||
.get_or_init(|| NonZeroUsize::new(page_size::get()).expect("page_size::get() returned 0"))
|
.get_or_init(|| NonZeroUsize::new(page_size::get()).expect("page_size::get() returned 0"))
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,17 +78,16 @@ macro_rules! impl_path_oncelock_and_fn {
|
||||||
$(#[$attr:meta])* // Documentation and any `derive`'s.
|
$(#[$attr:meta])* // Documentation and any `derive`'s.
|
||||||
$fn:ident, // Name of the corresponding access function.
|
$fn:ident, // Name of the corresponding access function.
|
||||||
$dirs_fn:ident, // Name of the `dirs` function to use, the PATH prefix.
|
$dirs_fn:ident, // Name of the `dirs` function to use, the PATH prefix.
|
||||||
$once_lock:ident, // Name of the `OnceLock`.
|
|
||||||
$sub_dirs:literal // Any sub-directories to add onto the PATH.
|
$sub_dirs:literal // Any sub-directories to add onto the PATH.
|
||||||
),* $(,)?) => {$(
|
),* $(,)?) => {$(
|
||||||
/// Local `OnceLock` containing the Path.
|
|
||||||
static $once_lock: OnceLock<PathBuf> = OnceLock::new();
|
|
||||||
|
|
||||||
// Create the `OnceLock` if needed, append
|
// Create the `OnceLock` if needed, append
|
||||||
// the Cuprate directory string and return.
|
// the Cuprate directory string and return.
|
||||||
$(#[$attr])*
|
$(#[$attr])*
|
||||||
pub fn $fn() -> &'static Path {
|
pub fn $fn() -> &'static Path {
|
||||||
$once_lock.get_or_init(|| {
|
/// Local `OnceLock` containing the Path.
|
||||||
|
static ONCE_LOCK: OnceLock<PathBuf> = OnceLock::new();
|
||||||
|
|
||||||
|
ONCE_LOCK.get_or_init(|| {
|
||||||
// There's nothing we can do but panic if
|
// There's nothing we can do but panic if
|
||||||
// we cannot acquire critical system directories.
|
// we cannot acquire critical system directories.
|
||||||
//
|
//
|
||||||
|
@ -139,7 +138,6 @@ impl_path_oncelock_and_fn! {
|
||||||
/// | Linux | `/home/alice/.cache/cuprate/` |
|
/// | Linux | `/home/alice/.cache/cuprate/` |
|
||||||
cuprate_cache_dir,
|
cuprate_cache_dir,
|
||||||
cache_dir,
|
cache_dir,
|
||||||
__CUPRATE_CACHE_DIR,
|
|
||||||
"",
|
"",
|
||||||
|
|
||||||
/// Cuprate's config directory.
|
/// Cuprate's config directory.
|
||||||
|
@ -153,7 +151,6 @@ impl_path_oncelock_and_fn! {
|
||||||
/// | Linux | `/home/alice/.config/cuprate/` |
|
/// | Linux | `/home/alice/.config/cuprate/` |
|
||||||
cuprate_config_dir,
|
cuprate_config_dir,
|
||||||
config_dir,
|
config_dir,
|
||||||
__CUPRATE_CONFIG_DIR,
|
|
||||||
"",
|
"",
|
||||||
|
|
||||||
/// Cuprate's data directory.
|
/// Cuprate's data directory.
|
||||||
|
@ -167,7 +164,6 @@ impl_path_oncelock_and_fn! {
|
||||||
/// | Linux | `/home/alice/.local/share/cuprate/` |
|
/// | Linux | `/home/alice/.local/share/cuprate/` |
|
||||||
cuprate_data_dir,
|
cuprate_data_dir,
|
||||||
data_dir,
|
data_dir,
|
||||||
__CUPRATE_DATA_DIR,
|
|
||||||
"",
|
"",
|
||||||
|
|
||||||
/// Cuprate's database directory.
|
/// Cuprate's database directory.
|
||||||
|
@ -181,7 +177,6 @@ impl_path_oncelock_and_fn! {
|
||||||
/// | Linux | `/home/alice/.local/share/cuprate/database/` |
|
/// | Linux | `/home/alice/.local/share/cuprate/database/` |
|
||||||
cuprate_database_dir,
|
cuprate_database_dir,
|
||||||
data_dir,
|
data_dir,
|
||||||
__CUPRATE_DATABASE_DIR,
|
|
||||||
"database",
|
"database",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue