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;
9use log::error;
10
11/// Maps a `PoisonError` from a failed `ApplicationState` Mutex lock into a
12/// structured `CommonError::StateLockPoisoned`.
13pub fn MapApplicationStateLockErrorToCommonError<T>(Error:PoisonError<MutexGuard<'_, T>>) -> CommonError {
14	let ErrorMessage = format!("[EnvironmentUtility] Failed to lock ApplicationState section: {}", Error);
15
16	error!("{}", ErrorMessage);
17
18	CommonError::StateLockPoisoned { Context:ErrorMessage }
19}
20
21/// Maps a generic `PoisonError` from a failed Mutex lock into a
22/// structured `CommonError::StateLockPoisoned`.
23pub fn MapLockErrorToCommonError<T>(Error:PoisonError<MutexGuard<'_, T>>) -> CommonError {
24	let ErrorMessage = format!("[EnvironmentUtility] Failed to lock Mutex: {}", Error);
25
26	error!("{}", ErrorMessage);
27
28	CommonError::StateLockPoisoned { Context:ErrorMessage }
29}