indexbus_kit/shm/
mod.rs

1//! SHM helpers: temp paths, region open options, cleanup.
2
3use std::path::{Path, PathBuf};
4
5use crate::errors::{Error, Result};
6
7/// Create a unique temporary path for a SHM mapping file.
8pub fn temp_mmap(prefix: &str) -> PathBuf {
9    crate::internal::temp::unique_temp_path(prefix, "mmap")
10}
11
12/// Best-effort file removal.
13///
14/// Intended for cleanup paths where failure is not actionable.
15pub fn remove_file_best_effort(path: &Path) {
16    let _ = std::fs::remove_file(path);
17}
18
19/// Create SHM region open options with the provided blocking flag.
20pub fn shm_open_options(blocking: bool) -> indexbus_transport_shm::OpenOptions {
21    indexbus_transport_shm::OpenOptions::new().blocking(blocking)
22}
23
24/// Create SHM journal open options with blocking/stats toggles.
25pub fn journal_open_options(
26    blocking: bool,
27    stats: bool,
28) -> indexbus_transport_shm::JournalOpenOptions {
29    indexbus_transport_shm::JournalOpenOptions::new()
30        .blocking(blocking)
31        .stats(stats)
32}
33
34/// Create a kit `Error` from a message.
35pub fn as_err(msg: impl Into<String>) -> Error {
36    Error::msg(msg.into())
37}
38
39/// Convenience: return an `Err(Error::msg(msg))`.
40pub fn err<T>(msg: impl Into<String>) -> Result<T> {
41    Err(Error::msg(msg.into()))
42}
43
44/// Convenience: return an `Err(Error::msg(msg))` for `Result<()>`.
45pub fn fmt_err(msg: impl Into<String>) -> Result<()> {
46    Err(Error::msg(msg.into()))
47}