Skip to main content

posthog_rs/
error.rs

1use std::fmt::{Display, Formatter};
2
3impl Display for Error {
4    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
5        match self {
6            Error::Connection(msg) => write!(f, "Connection Error: {msg}"),
7            Error::Serialization(msg) => write!(f, "Serialization Error: {msg}"),
8            Error::AlreadyInitialized => write!(f, "Client already initialized"),
9            Error::NotInitialized => write!(f, "Client not initialized"),
10            Error::InvalidTimestamp(msg) => write!(f, "Invalid Timestamp: {msg}"),
11            Error::InconclusiveMatch(msg) => write!(f, "Inconclusive Match: {msg}"),
12        }
13    }
14}
15
16/// Errors that can occur when using the PostHog client.
17#[derive(Debug)]
18#[non_exhaustive]
19pub enum Error {
20    /// Network or HTTP error when communicating with PostHog API
21    Connection(String),
22    /// Error serializing or deserializing JSON data
23    Serialization(String),
24    /// Global client was already initialized via `init_global`
25    AlreadyInitialized,
26    /// Global client was not initialized before use
27    NotInitialized,
28    /// Timestamp could not be parsed or is invalid
29    InvalidTimestamp(String),
30    /// Flag evaluation was inconclusive (e.g., missing required properties, unknown operator)
31    InconclusiveMatch(String),
32}