Enum BridgeCloseReason
#[non_exhaustive]pub enum BridgeCloseReason {
Shutdown,
IdleTimeout,
PeerEofLeft,
PeerEofRight,
ReadErrorLeft,
ReadErrorRight,
WriteErrorLeft,
WriteErrorRight,
PeekTimeout,
HandlerDeadline,
PausedTimeout,
}net only.Expand description
Reason why an IoForwardService bridge — or any equivalent bidirectional
byte relay — terminated.
Shared vocabulary used in close-log events emitted by rama bridges. Consumers are free to emit any subset; each variant carries no metadata of its own.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Shutdown
Graceful shutdown was requested via the configured shutdown signal.
IdleTimeout
The bridge observed no byte progress in either direction within the configured idle window.
PeerEofLeft
The “left” / ingress / client side reached EOF.
PeerEofRight
The “right” / egress / target side reached EOF.
ReadErrorLeft
Read from the left half failed.
ReadErrorRight
Read from the right half failed.
WriteErrorLeft
Write to the left half failed.
WriteErrorRight
Write to the right half failed.
PeekTimeout
A protocol-peek read deadline elapsed before the peek completed. Used by tproxy bridges that peek the first bytes for protocol detection.
HandlerDeadline
The flow handler did not produce a decision within the configured deadline. The flow was rejected (or passed through, depending on configuration) without bridging.
PausedTimeout
A backpressure-paused write side was never re-armed by its peer
drain signal within the configured maximum-pause window. Surfaces
stuck downstream writers (e.g. a Swift flow.write completion
handler that never invokes signalServerDrain) instead of
wedging the bridge indefinitely.
Trait Implementations§
§impl Clone for BridgeCloseReason
impl Clone for BridgeCloseReason
§fn clone(&self) -> BridgeCloseReason
fn clone(&self) -> BridgeCloseReason
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for BridgeCloseReason
impl Debug for BridgeCloseReason
§impl Display for BridgeCloseReason
impl Display for BridgeCloseReason
§impl Hash for BridgeCloseReason
impl Hash for BridgeCloseReason
§impl PartialEq for BridgeCloseReason
impl PartialEq for BridgeCloseReason
§fn eq(&self, other: &BridgeCloseReason) -> bool
fn eq(&self, other: &BridgeCloseReason) -> bool
self and other values to be equal, and is used by ==.§impl TraceField for BridgeCloseReason
impl TraceField for BridgeCloseReason
§type Ref<'a> = BridgeCloseReason
type Ref<'a> = BridgeCloseReason
fn field_type() -> FieldType
§fn encode<W>(&self, enc: &mut EventEncoder<'_, W>) -> Result<(), Error>where
W: Write,
fn encode<W>(&self, enc: &mut EventEncoder<'_, W>) -> Result<(), Error>where
W: Write,
§fn decode_ref<'a>(
val: &FieldValueRef<'a>,
) -> Option<<BridgeCloseReason as TraceField>::Ref<'a>>
fn decode_ref<'a>( val: &FieldValueRef<'a>, ) -> Option<<BridgeCloseReason as TraceField>::Ref<'a>>
§fn is_optional() -> bool
fn is_optional() -> bool
§fn decode_missing<'a>() -> Option<Self::Ref<'a>>
fn decode_missing<'a>() -> Option<Self::Ref<'a>>
None for required fields (decode failure) and Some(None) for
optional fields.impl Copy for BridgeCloseReason
impl Eq for BridgeCloseReason
impl StructuralPartialEq for BridgeCloseReason
Auto Trait Implementations§
impl Freeze for BridgeCloseReason
impl RefUnwindSafe for BridgeCloseReason
impl Send for BridgeCloseReason
impl Sync for BridgeCloseReason
impl Unpin for BridgeCloseReason
impl UnsafeUnpin for BridgeCloseReason
impl UnwindSafe for BridgeCloseReason
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more§impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
fn rama_try_from(value: T) -> Result<U, <U as RamaTryFrom<T>>::Error>
§impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
type Error = <U as RamaTryFrom<T, CrateMarker>>::Error
fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T, CrateMarker>>::Error>
§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.
§impl<V, F> ValueFormatter<&V> for F
impl<V, F> ValueFormatter<&V> for F
§fn format_value(writer: impl ValueWriter, value: &&V)
fn format_value(writer: impl ValueWriter, value: &&V)
value to writer§impl<V, F> ValueFormatter<Arc<V>> for F
impl<V, F> ValueFormatter<Arc<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Arc<V>)
fn format_value(writer: impl ValueWriter, value: &Arc<V>)
value to writer§impl<V, F> ValueFormatter<Box<V>> for F
impl<V, F> ValueFormatter<Box<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Box<V>)
fn format_value(writer: impl ValueWriter, value: &Box<V>)
value to writer§impl<V, F> ValueFormatter<Cow<'_, V>> for F
impl<V, F> ValueFormatter<Cow<'_, V>> for F
§fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
value to writer§impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
§fn format_value(writer: impl ValueWriter, value: &Option<V>)
fn format_value(writer: impl ValueWriter, value: &Option<V>)
value to writer