Skip to main content

simconnect_sdk/
errors.rs

1use thiserror::Error;
2
3/// SimConnect SDK error.
4#[derive(Error, Debug)]
5#[non_exhaustive]
6pub enum SimConnectError {
7    /// SimConnect error.
8    #[error("SimConnect error: {0}")]
9    SimConnectError(i32),
10    /// SimConnect error.
11    #[error("SimConnect exception: {0}")]
12    SimConnectException(u32),
13    /// An unimplemented event type has been received by the SDK.
14    #[error("Unimplemented event in the SDK: {0}")]
15    UnimplementedEventType(u32),
16    /// An unimplemented notification has been received by the SDK.
17    #[error("Unimplemented notification in the SDK: {0}")]
18    UnimplementedNotification(i32),
19    /// Object already registered with the client instance.
20    #[error("Object `{0}` has already been registered")]
21    ObjectAlreadyRegistered(String),
22    /// Object already registered with the client instance.
23    #[error("Object `{0}` has not been registered")]
24    ObjectNotRegistered(String),
25    #[error("Event `{0}` has already been subscribed to")]
26    EventAlreadySubscribedTo(String),
27    #[error("Event `{0}` has not been subscribed to")]
28    EventNotSubscribedTo(String),
29    /// Object mismatch.
30    #[error("Tried to convert object of type {actual} to {expected}")]
31    ObjectMismatch { actual: String, expected: String },
32    /// Conversation error.
33    #[error("Conversion error: {0}")]
34    ConversionError(#[from] std::num::TryFromIntError),
35    /// Unexpected error.
36    #[error("Unexpected error: {0}")]
37    UnexpectedError(String),
38}