redgold_schema/errors/
into_error.rs

1use crate::structs::ErrorInfo;
2use crate::{error_info, RgResult};
3
4
5pub trait ToErrorInfo {
6    fn to_error<T>(&self) -> RgResult<T>;
7    fn to_error_info(&self) -> ErrorInfo;
8}
9
10impl ToErrorInfo for String {
11    fn to_error<T>(&self) -> RgResult<T> {
12        Err(error_info(self))
13    }
14    fn to_error_info(&self) -> ErrorInfo {
15        error_info(self)
16    }
17}
18
19
20impl TryFrom<String> for ErrorInfo {
21    type Error = ErrorInfo;
22
23    fn try_from(value: String) -> Result<Self, Self::Error> {
24        value.to_error()
25    }
26}
27
28impl ToErrorInfo for &str {
29    fn to_error<T>(&self) -> RgResult<T> {
30        Err::<T, ErrorInfo>(error_info(self.to_string()))
31
32    }
33    fn to_error_info(&self) -> ErrorInfo {
34        error_info(self.to_string())
35    }
36}