use thiserror::Error;
pub type BubbleHearthResult<T> = Result<T, BubbleHearthError>;
#[derive(Debug, Error)]
pub enum BubbleHearthError {
#[error("A region must be provided when building a client instance.")]
RegionRequired,
#[error("A client instance was unable to be constructed.")]
ClientInstanceRequired,
#[error("{0}")]
ClientRequestFailed(#[from] reqwest::Error),
#[error("No available access token was found.")]
AccessTokenNotFound,
#[error("No expiration was found associated to the current authentication context.")]
ExpirationNotFound,
#[error("{0}")]
AuthenticationLockFailed(String),
#[error("Locale {0} is unknown.")]
LocaleUnknown(String),
#[error("Query struct was not configured with any optional filters.")]
SearchParametersNotProvided,
}