sentc_crypto_light/
error.rs1use alloc::format;
2use alloc::string::String;
3
4use sentc_crypto_core::Error;
5use sentc_crypto_utils::error::{out_error, SdkUtilError};
6
7#[derive(Debug)]
8pub enum SdkLightError
9{
10 Util(SdkUtilError),
11 JsonToStringFailed,
12 JsonParseFailed(serde_json::Error),
13 KeyDecryptFailed,
14 GroupPermission,
15 GroupRank,
16}
17
18impl From<Error> for SdkLightError
22{
23 fn from(e: Error) -> Self
24 {
25 SdkLightError::Util(SdkUtilError::Base(e))
26 }
27}
28
29impl From<SdkUtilError> for SdkLightError
30{
31 fn from(value: SdkUtilError) -> Self
32 {
33 Self::Util(value)
34 }
35}
36
37impl From<SdkLightError> for String
38{
39 fn from(e: SdkLightError) -> Self
40 {
41 err_to_msg(e)
42 }
43}
44
45impl From<serde_json::Error> for SdkLightError
46{
47 fn from(value: serde_json::Error) -> Self
48 {
49 Self::JsonParseFailed(value)
50 }
51}
52
53pub fn err_to_msg(error: SdkLightError) -> String
54{
55 match error {
56 SdkLightError::Util(e) => sentc_crypto_utils::error::err_to_msg(e),
57 SdkLightError::JsonToStringFailed => out_error("client_100", "Cannot create a string from this object"),
58 SdkLightError::JsonParseFailed(err) => {
59 format!("{{\"status\": {}, \"error_message\": \"{}\"}}", "client_101", err)
60 },
61 SdkLightError::KeyDecryptFailed => out_error("client_21", "Can't decrypt a key. Maybe the format is wrong"),
62
63 SdkLightError::GroupRank => {
65 out_error(
66 "client_200",
67 "No valid group rank. Please choose between 1 (highest) and 4 (lowest)",
68 )
69 },
70 SdkLightError::GroupPermission => out_error("client_201", "No permission to fulfill this action"),
71 }
72}