#[derive(Debug)]
pub enum ClientError{
/// The sender account used to send a message couldn't be authenticated. Possible causes are:
///
/// Authorization header missing or with invalid syntax in HTTP request.
///
/// * The Firebase project that the specified server key belongs to is
/// incorrect.
/// * Legacy server keys only—the request originated from a server not
/// whitelisted in the Server key IPs.
///
/// Check that the token you're sending inside the Authentication header is
/// the correct Server key associated with your project. See Checking the
/// validity of a Server key for details. If you are using a legacy server
/// key, you're recommended to upgrade to a new key that has no IP
/// restrictions.
Unauthorized,
/// Check that the JSON message is properly formatted and contains valid
/// fields (for instance, making sure the right data type is passed in).
InvalidMessage(String),
/// The server couldn't process the request. Retry the same request, but you must:
///
/// * Honor the [RetryAfter](enum.RetryAfter.html) value if included.
/// * Implement exponential back-off in your retry mechanism. (e.g. if you
/// waited one second before the first retry, wait at least two second
/// before the next one, then 4 seconds and so on). If you're sending
/// multiple messages, delay each one independently by an additional random
/// amount to avoid issuing a new request for all messages at the same time.
///
/// Senders that cause problems risk being blacklisted.
ServerError(String),
}