#[non_exhaustive]pub enum OpaqueReason {
UntypedLayer,
UntypedRoute,
UntypedHandler,
ProtocolUpgrade,
StaticAssets,
Unrecognized(String),
}Expand description
Why part of a service is not verifiably described.
Deliberately not Copy: the wire form has to survive a description written
by a newer Kynos, which means carrying a reason this build does not know as
Unrecognized rather than failing to read the
record at all.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
UntypedLayer
A layer of undeclared effect covers the operation.
It may short-circuit, rewrite the body, or add headers, and its type says nothing about which.
UntypedRoute
The route’s matching pattern is not a legal path template.
A catch-all is the usual case: it matches a set of paths that no single template describes.
UntypedHandler
The route’s handler declares neither its inputs nor its responses.
ProtocolUpgrade
The route leaves HTTP, so no version of the specification covers it.
OpenAPI describes request/response semantics. A connection that has upgraded away from HTTP has no vocabulary here, and inventing one would produce an entry no consumer could act on.
StaticAssets
The route serves a tree of files whose membership is not fixed.
A catch-all like every other, so UntypedRoute
would be true of it — but it reads identically to a business API someone
wildcarded, and the two deserve different amounts of alarm. A consumer
meeting this knows the undescribed part of the service is a directory of
files rather than an operation nobody wrote down, and a CI gate can
tolerate exactly this one.
Unrecognized(String)
A reason recorded by a version of Kynos that knows more than this one.
Preserved verbatim so the record round-trips. An older reader must not turn a description it merely does not fully understand into one it reports as malformed – and must not drop the reason when it writes the document back out.
Implementations§
Trait Implementations§
Source§impl Clone for OpaqueReason
impl Clone for OpaqueReason
Source§impl Debug for OpaqueReason
impl Debug for OpaqueReason
Source§impl<'de> Deserialize<'de> for OpaqueReason
impl<'de> Deserialize<'de> for OpaqueReason
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for OpaqueReason
impl Display for OpaqueReason
impl Eq for OpaqueReason
Source§impl Hash for OpaqueReason
impl Hash for OpaqueReason
Source§impl PartialEq for OpaqueReason
impl PartialEq for OpaqueReason
Source§impl Serialize for OpaqueReason
impl Serialize for OpaqueReason
impl StructuralPartialEq for OpaqueReason
Auto Trait Implementations§
impl Freeze for OpaqueReason
impl RefUnwindSafe for OpaqueReason
impl Send for OpaqueReason
impl Sync for OpaqueReason
impl Unpin for OpaqueReason
impl UnsafeUnpin for OpaqueReason
impl UnwindSafe for OpaqueReason
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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.