#[non_exhaustive]pub enum ErrorCode {
Usage,
NotFound,
Auth,
Forbidden,
RateLimit,
Network,
Api,
Validation,
Ambiguous,
Conflict,
CircuitOpen,
BulkheadFull,
}Expand description
Machine-readable error categories, shared with the other HEY SDKs.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Usage
The call was asked for wrongly: a bad argument, a URL that will not parse.
NotFound
There is no such record.
Auth
HEY wants credentials the call did not carry, or refused the ones it did.
Forbidden
The credentials are good but do not reach this far.
RateLimit
Too many calls, whether HEY said so with a 429 or the client’s own limiter refused it.
Network
No answer came at all: a connection, DNS or timeout failure.
Api
HEY answered with a failure the other categories do not name.
Validation
HEY refused the contents of the request.
Ambiguous
A name matched more than one record.
Conflict
The request conflicts with what HEY already holds.
CircuitOpen
The scope’s circuit breaker is open, so the SDK refused the call itself. See
crate::resilience.
BulkheadFull
The scope already has as many calls in flight as its bulkhead allows.
Implementations§
Source§impl ErrorCode
impl ErrorCode
Sourcepub fn as_str(&self) -> &'static str
pub fn as_str(&self) -> &'static str
The category’s name as the other HEY SDKs spell it: not_found, rate_limit.
Sourcepub fn exit_code(&self) -> i32
pub fn exit_code(&self) -> i32
The process exit status a command should end with for this category. A conflict
leaves with EXIT_VALIDATION: both mean the server refused what was asked of it.
A call the SDK refused for itself leaves with EXIT_API, which is where Go’s
ExitCodeFor sends the codes it does not name.
Trait Implementations§
impl Copy for ErrorCode
impl Eq for ErrorCode
impl StructuralPartialEq for ErrorCode
Auto Trait Implementations§
impl Freeze for ErrorCode
impl RefUnwindSafe for ErrorCode
impl Send for ErrorCode
impl Sync for ErrorCode
impl Unpin for ErrorCode
impl UnsafeUnpin for ErrorCode
impl UnwindSafe for ErrorCode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.