Skip to main content

Mountain/Environment/Utility/
ErrorMapping.rs

1//! # Error Mapping Utilities
2//!
3//! Functions for converting various error types into [`CommonError`].
4//! Primarily used for mapping `PoisonError` from Mutex lock failures.
5
6use std::sync::{MutexGuard, PoisonError};
7
8use CommonLibrary::Error::CommonError::CommonError;
9
10use crate::dev_log;
11
12/// Maps a `PoisonError` from a failed `ApplicationState` Mutex lock into a
13/// structured `CommonError::StateLockPoisoned`.
14pub fn MapApplicationStateLockErrorToCommonError<T>(Error:PoisonError<MutexGuard<'_, T>>) -> CommonError {
15	let ErrorMessage = format!("[EnvironmentUtility] Failed to lock ApplicationState section: {}", Error);
16
17	dev_log!("vfs", "error: {}", ErrorMessage);
18
19	CommonError::StateLockPoisoned { Context:ErrorMessage }
20}
21
22/// Maps a generic `PoisonError` from a failed Mutex lock into a
23/// structured `CommonError::StateLockPoisoned`.
24pub fn MapLockErrorToCommonError<T>(Error:PoisonError<MutexGuard<'_, T>>) -> CommonError {
25	let ErrorMessage = format!("[EnvironmentUtility] Failed to lock Mutex: {}", Error);
26
27	dev_log!("vfs", "error: {}", ErrorMessage);
28
29	CommonError::StateLockPoisoned { Context:ErrorMessage }
30}