#[repr(u64)]pub enum RequestErrorCode {
Show 16 variants
InternalError = 0,
Unauthorized = 1,
Timeout = 2,
NotSupported = 3,
MalformedAuthToken = 4,
ExpiredAuthToken = 5,
GoingAway = 6,
ExcessiveLoad = 9,
DoesNotExist = 16,
InvalidRange = 17,
MalformedTrack = 18,
DuplicateSubscription = 25,
Uninterested = 32,
PrefixOverlap = 48,
NamespaceTooLarge = 49,
InvalidJoiningRequestId = 50,
}Expand description
REQUEST_ERROR Codes (draft-17, Section 14.5.2).
The registry table is in Section 14.5.2; the per-code descriptions carried on the variants below are the ones given in Section 9.7 of the draft.
The table’s last row reserves 0x7f * N + 0x9D for greasing (Section 13).
Greasing code points are not a contiguous range and carry no semantics a
decoder can act on, so they get no variants and from_u64 rejects them like
any other unassigned value.
Variants§
InternalError = 0
INTERNAL_ERROR — An implementation specific or generic error occurred.
UNAUTHORIZED — The subscriber is not authorized to perform the requested action on the given track. This might be retryable if the authorization token is not yet valid.
Timeout = 2
TIMEOUT — The subscription could not be completed before an implementation specific timeout. For example, a relay could not establish an upstream subscription within the timeout.
NotSupported = 3
NOT_SUPPORTED — The endpoint does not support the type of request.
MalformedAuthToken = 4
MALFORMED_AUTH_TOKEN — Invalid Auth Token serialization during registration (see Section 9.3.2).
ExpiredAuthToken = 5
EXPIRED_AUTH_TOKEN — Authorization token has expired (Section 9.3.2).
GoingAway = 6
GOING_AWAY — The endpoint has received a GOAWAY and MAY reject new requests.
ExcessiveLoad = 9
EXCESSIVE_LOAD — The responder is overloaded and cannot process the request at this time. The sender SHOULD use the Retry Interval to indicate when the request can be retried.
DoesNotExist = 16
DOES_NOT_EXIST — The track or namespace is not available at the publisher.
InvalidRange = 17
INVALID_RANGE — In response to SUBSCRIBE or FETCH, specified Filter or range of Locations cannot be satisfied.
MalformedTrack = 18
MALFORMED_TRACK — In response to a FETCH, a relay publisher detected the track was malformed (see Section 2.4.2).
DuplicateSubscription = 25
DUPLICATE_SUBSCRIPTION — The PUBLISH or SUBSCRIBE request attempted to create a subscription to a Track with the same role as an existing subscription.
Uninterested = 32
UNINTERESTED — The subscriber is not interested in the track or namespace.
PrefixOverlap = 48
PREFIX_OVERLAP — In response to SUBSCRIBE_NAMESPACE, the namespace prefix overlaps with another SUBSCRIBE_NAMESPACE in the same session.
NamespaceTooLarge = 49
NAMESPACE_TOO_LARGE — In response to SUBSCRIBE_NAMESPACE, the namespace prefix matches more publishers than the relay is willing to enumerate.
InvalidJoiningRequestId = 50
INVALID_JOINING_REQUEST_ID — In response to a Joining FETCH, the referenced Request ID is not an Established Subscription.
Implementations§
Source§impl RequestErrorCode
impl RequestErrorCode
Sourcepub const ALL: &[RequestErrorCode]
pub const ALL: &[RequestErrorCode]
Every Request Error Code draft-17 assigns, in ascending wire order.
This is the set Self::from_u64 accepts, written out so that it can
be enumerated: nothing can iterate an enum’s variants, so a caller that
wants the registry has to be handed it. Writing it down is also what
lets a test state its claims about the registry itself rather than about
the range some sweep happens to reach — that this is the set from_u64
answers to, and that none of it lands in the range the draft reserves
for greasing.
Trait Implementations§
Source§impl Clone for RequestErrorCode
impl Clone for RequestErrorCode
Source§fn clone(&self) -> RequestErrorCode
fn clone(&self) -> RequestErrorCode
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more