pub enum UpstreamError {
Timeout,
Io(Error),
TransportNotEnabled(UpstreamTransport),
TlsHandshake(String),
NoTokioRuntime,
}Expand description
Typed upstream-forward error.
Mapped at the super::run_one_shot call site to a SERVFAIL response
for the workload plus a dns_query CloudEvent stamped
reasonCode: upstream_failure. The variant discriminator is stable so
follow-up slots can refine the event’s reason text without re-shaping
the matrix.
Variants§
Timeout
Upstream did not answer within the configured budget.
Io(Error)
Lower-level I/O failure (refused, unreachable, transport reset).
TransportNotEnabled(UpstreamTransport)
Operator selected a transport this build does not implement — typed SERVFAIL discriminator (D9 in the dispatch ledger).
TlsHandshake(String)
rustls handshake failed (cert chain rejected, SNI mismatch, protocol
error). Distinct from Self::Io so triage can tell “the resolver
answered but with a bad cert” from “the resolver didn’t answer”.
NoTokioRuntime
Async transport invoked outside a tokio runtime — programming error in production (the supervisor always runs inside one) but explicit rather than panicking.
Trait Implementations§
Source§impl Debug for UpstreamError
impl Debug for UpstreamError
Source§impl Display for UpstreamError
impl Display for UpstreamError
Source§impl Error for UpstreamError
impl Error for UpstreamError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for UpstreamError
impl !RefUnwindSafe for UpstreamError
impl Send for UpstreamError
impl Sync for UpstreamError
impl Unpin for UpstreamError
impl UnsafeUnpin for UpstreamError
impl !UnwindSafe for UpstreamError
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.