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}