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