#[repr(u64)]pub enum RequestErrorCode {
Show 18 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,
UnsupportedExtension = 51,
Redirect = 52,
}Expand description
REQUEST_ERROR Codes (draft-18 Section 15.10.2).
These are the codes carried in the Error Code field of a REQUEST_ERROR message rejecting a request. The registry’s Specification column points at Section 10.6, which is a one-sentence introduction; the per-code definitions are one level down, in Section 10.6.2 (REQUEST_ERROR Message Format).
One code changes the shape of the message: a REQUEST_ERROR carries a trailing
Redirect structure only when the Error Code is REDIRECT (0x34).
The range 0x7f * N + 0x9D is reserved for greasing and has no variant.
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 10.2.2).
ExpiredAuthToken = 5
EXPIRED_AUTH_TOKEN — Authorization token has expired (Section 10.2.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 or
SUBSCRIBE_TRACKS, the namespace prefix shares a common prefix with
another subscription of the same type in the same session.
SUBSCRIBE_NAMESPACE and SUBSCRIBE_TRACKS have independent overlap
spaces, so a SUBSCRIBE_NAMESPACE and a SUBSCRIBE_TRACKS may share the
same prefix.
NamespaceTooLarge = 49
NAMESPACE_TOO_LARGE — In response to SUBSCRIBE_NAMESPACE or
SUBSCRIBE_TRACKS, 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.
UnsupportedExtension = 51
UNSUPPORTED_EXTENSION — The track contains a Mandatory Track Property
(see Section 2.5.1) that the endpoint does not understand.
Redirect = 52
REDIRECT — The request cannot be fulfilled by this endpoint, but could
succeed at the location specified in the Redirect structure. The
requester SHOULD establish a new session to the provided URI (if
present) and retry the request using the Full Track Name from the
Redirect (if present). This error code can appear in response to
SUBSCRIBE, FETCH, TRACK_STATUS, PUBLISH_NAMESPACE and
SUBSCRIBE_NAMESPACE. Relays are not required to follow redirects from
upstream and MAY forward a REDIRECT response to matching downstream
requests. A relay MAY cache a REDIRECT response for a Full Track Name
for up to Retry Interval milliseconds and use it to respond to
subsequent matching requests without forwarding them upstream.
Implementations§
Source§impl RequestErrorCode
impl RequestErrorCode
Sourcepub const ALL: &[RequestErrorCode]
pub const ALL: &[RequestErrorCode]
Every Request Error Code draft-18 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