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 ZstdDictCompressionError(String),
16
17 GzipError(String),
18
19 ZstdError(String),
20
21 JsonParseError(String, String),
22
23 FileError(String),
24
25 ThreadFailure(String),
26
27 StackOverflowError,
28
29 DataStoreFailure(String),
31
32 SpecsAdapterSkipPoll(String),
34
35 ObservabilityClientFailure(String),
36
37 IdListsAdapterFailedToInsertIdList,
39
40 GrpcError(String),
41
42 ShutdownTimeout,
43
44 ScheduleFailure(String),
46 ShutdownFailure,
47
48 SharedInstanceFailure(String),
49}
50
51impl Display for StatsigErr {
52 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
53 match self {
54 StatsigErr::CustomError(msg) => write!(f, "{msg}"),
55
56 StatsigErr::LockFailure(msg) => write!(f, "Failed to acquire lock: {msg}"),
57
58 StatsigErr::UnstartedAdapter(msg) => write!(f, "Adapter not started: {msg}"),
59
60 StatsigErr::NetworkError(msg) => write!(f, "Network error: {msg}"),
61
62 StatsigErr::SerializationError(msg) => write!(f, "Serialization error: {msg}"),
63
64 StatsigErr::ZstdDictCompressionError(msg) => {
65 write!(f, "Zstd dictionary compression error: {msg}")
66 }
67
68 StatsigErr::GzipError(msg) => write!(f, "Gzip error: {msg}"),
69
70 StatsigErr::ZstdError(msg) => write!(f, "Zstd error: {msg}"),
71
72 StatsigErr::JsonParseError(type_name, err_msg) => {
73 write!(f, "Failed to parse {type_name} - {err_msg}")
74 }
75
76 StatsigErr::FileError(msg) => write!(f, "File write error: {msg}"),
77
78 StatsigErr::ThreadFailure(msg) => write!(f, "Thread failure: {msg}"),
79
80 StatsigErr::StackOverflowError => write!(f, "Statsig Evaluation Depth Exceeded"),
81
82 StatsigErr::IdListsAdapterFailedToInsertIdList => {
84 write!(f, "Failed to insert new Id List")
85 }
86
87 StatsigErr::GrpcError(e) => write!(f, "{e}"),
88
89 StatsigErr::ShutdownTimeout => write!(f, "Shutdown timed out"),
90
91 StatsigErr::ScheduleFailure(e) => write!(f, "Failed to schedule task: {e}"),
92
93 StatsigErr::ShutdownFailure => write!(f, "Failed to shutdown task scheduler"),
94 StatsigErr::DataStoreFailure(message) => write!(f, "DataStore Error: {message}"),
95 StatsigErr::SpecsAdapterSkipPoll(adapter_name) => {
96 write!(f, "{adapter_name} skips scheduling polling")
97 }
98 StatsigErr::ObservabilityClientFailure(message) => {
99 write!(f, "ObservabilityClient Error: {message}")
100 }
101 StatsigErr::SharedInstanceFailure(message) => {
102 write!(f, "SharedInstance Error: {message}")
103 }
104 }
105 }
106}