statsig_rust/
statsig_err.rs1use std::fmt::{Display, Formatter};
2
3use crate::networking::NetworkError;
4
5#[derive(Debug, Clone)]
6pub enum StatsigErr {
7 CustomError(String),
8
9 LockFailure(String),
10
11 UnstartedAdapter(String),
12
13 NetworkError(NetworkError, Option<String>),
14
15 SerializationError(String),
16
17 ZstdDictCompressionError(String),
18
19 GzipError(String),
20
21 ZstdError(String),
22
23 JsonParseError(String, String),
24
25 FileError(String),
26
27 ThreadFailure(String),
28
29 StackOverflowError,
30
31 DataStoreFailure(String),
33
34 SpecsAdapterSkipPoll(String),
36
37 ObservabilityClientFailure(String),
38
39 IdListsAdapterFailedToInsertIdList,
41
42 GrpcError(String),
43
44 ShutdownTimeout,
45
46 ScheduleFailure(String),
48 ShutdownFailure,
49
50 SharedInstanceFailure(String),
51}
52
53impl Display for StatsigErr {
54 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
55 match self {
56 StatsigErr::CustomError(msg) => write!(f, "{msg}"),
57
58 StatsigErr::LockFailure(msg) => write!(f, "Failed to acquire lock: {msg}"),
59
60 StatsigErr::UnstartedAdapter(msg) => write!(f, "Adapter not started: {msg}"),
61
62 StatsigErr::NetworkError(error, msg) => write!(f, "Network error {error}: {msg:?}"),
63
64 StatsigErr::SerializationError(msg) => write!(f, "Serialization error: {msg}"),
65
66 StatsigErr::ZstdDictCompressionError(msg) => {
67 write!(f, "Zstd dictionary compression error: {msg}")
68 }
69
70 StatsigErr::GzipError(msg) => write!(f, "Gzip error: {msg}"),
71
72 StatsigErr::ZstdError(msg) => write!(f, "Zstd error: {msg}"),
73
74 StatsigErr::JsonParseError(type_name, err_msg) => {
75 write!(f, "Failed to parse {type_name} - {err_msg}")
76 }
77
78 StatsigErr::FileError(msg) => write!(f, "File write error: {msg}"),
79
80 StatsigErr::ThreadFailure(msg) => write!(f, "Thread failure: {msg}"),
81
82 StatsigErr::StackOverflowError => write!(f, "Statsig Evaluation Depth Exceeded"),
83
84 StatsigErr::IdListsAdapterFailedToInsertIdList => {
86 write!(f, "Failed to insert new Id List")
87 }
88
89 StatsigErr::GrpcError(e) => write!(f, "{e}"),
90
91 StatsigErr::ShutdownTimeout => write!(f, "Shutdown timed out"),
92
93 StatsigErr::ScheduleFailure(e) => write!(f, "Failed to schedule task: {e}"),
94
95 StatsigErr::ShutdownFailure => write!(f, "Failed to shutdown task scheduler"),
96 StatsigErr::DataStoreFailure(message) => write!(f, "DataStore Error: {message}"),
97 StatsigErr::SpecsAdapterSkipPoll(adapter_name) => {
98 write!(f, "{adapter_name} skips scheduling polling")
99 }
100 StatsigErr::ObservabilityClientFailure(message) => {
101 write!(f, "ObservabilityClient Error: {message}")
102 }
103 StatsigErr::SharedInstanceFailure(message) => {
104 write!(f, "SharedInstance Error: {message}")
105 }
106 }
107 }
108}