macro_rules! define_error_enum {
($name:ident { $(#[doc=$doc:expr] $variant:ident),* }) => {
#[derive(Serialize, Deserialize, Debug, Error)]
#[serde(tag = "error")]
#[serde(rename_all = "camelCase")]
pub enum $name {
$(#[error(msg_embedded, non_std, no_from)]
#[doc=$doc]
$variant {
description: String}),*,
Unknown
}
}
}
define_error_enum!(AnalyticordError {
DataValidationError,
InvalidOption,
Ratelimit,
NotEnoughDetail,
NoQuery,
NoAuth,
LogsDisabled,
NotAnError,
LolMemes,
FeatureDisabled,
BotCreationFailed,
Nightmare,
DataInputFailed,
NoHeaders,
UnknownError,
WrongAuthHeaders,
WrongDomain,
NoEventType,
MiscUserError,
NoData,
AuthFailed,
LengthMismatch,
WrongToken,
UserNotVerified,
BotNonExistant
});
pub type Result<T> = ::std::result::Result<T, AnalyticordError>;