Struct StreamForwardService
pub struct StreamForwardService { /* private fields */ }Expand description
A Service which takes a StreamBridge and pumps frames between
the two endpoints bidirectionally.
The service optionally observes a ShutdownGuard (for graceful
termination) and an idle timeout that closes the bridge when no frame
has been forwarded in either direction within the configured window.
Returns a BridgeCloseReason describing why the bridge ended.
Implementations§
§impl StreamForwardService
impl StreamForwardService
pub fn new() -> StreamForwardService
pub fn new() -> StreamForwardService
Create a new StreamForwardService with no idle timeout and no
shutdown guard. Equivalent to StreamForwardService::default.
pub fn maybe_with_idle_timeout(
self,
timeout: Option<Duration>,
) -> StreamForwardService
pub fn maybe_with_idle_timeout( self, timeout: Option<Duration>, ) -> StreamForwardService
Idle timeout. When set, the bridge closes with reason
BridgeCloseReason::IdleTimeout if no frame has been
forwarded in either direction within timeout.
None (the default) disables idle detection.
pub fn maybe_set_idle_timeout(
&mut self,
timeout: Option<Duration>,
) -> &mut StreamForwardService
pub fn maybe_set_idle_timeout( &mut self, timeout: Option<Duration>, ) -> &mut StreamForwardService
Idle timeout. When set, the bridge closes with reason
BridgeCloseReason::IdleTimeout if no frame has been
forwarded in either direction within timeout.
None (the default) disables idle detection.
pub fn with_idle_timeout(self, timeout: Duration) -> StreamForwardService
pub fn with_idle_timeout(self, timeout: Duration) -> StreamForwardService
Idle timeout. When set, the bridge closes with reason
BridgeCloseReason::IdleTimeout if no frame has been
forwarded in either direction within timeout.
None (the default) disables idle detection.
pub fn set_idle_timeout(
&mut self,
timeout: Duration,
) -> &mut StreamForwardService
pub fn set_idle_timeout( &mut self, timeout: Duration, ) -> &mut StreamForwardService
Idle timeout. When set, the bridge closes with reason
BridgeCloseReason::IdleTimeout if no frame has been
forwarded in either direction within timeout.
None (the default) disables idle detection.
pub fn without_idle_timeout(self) -> StreamForwardService
pub fn without_idle_timeout(self) -> StreamForwardService
Idle timeout. When set, the bridge closes with reason
BridgeCloseReason::IdleTimeout if no frame has been
forwarded in either direction within timeout.
None (the default) disables idle detection.
pub fn unset_idle_timeout(&mut self) -> &mut StreamForwardService
pub fn unset_idle_timeout(&mut self) -> &mut StreamForwardService
Idle timeout. When set, the bridge closes with reason
BridgeCloseReason::IdleTimeout if no frame has been
forwarded in either direction within timeout.
None (the default) disables idle detection.
pub fn maybe_with_shutdown_guard(
self,
guard: Option<ShutdownGuard>,
) -> StreamForwardService
pub fn maybe_with_shutdown_guard( self, guard: Option<ShutdownGuard>, ) -> StreamForwardService
ShutdownGuard used to observe graceful-shutdown signals.
When the guard fires, the bridge closes with reason
BridgeCloseReason::Shutdown.
None (the default) means no shutdown observation.
pub fn maybe_set_shutdown_guard(
&mut self,
guard: Option<ShutdownGuard>,
) -> &mut StreamForwardService
pub fn maybe_set_shutdown_guard( &mut self, guard: Option<ShutdownGuard>, ) -> &mut StreamForwardService
ShutdownGuard used to observe graceful-shutdown signals.
When the guard fires, the bridge closes with reason
BridgeCloseReason::Shutdown.
None (the default) means no shutdown observation.
pub fn with_shutdown_guard(self, guard: ShutdownGuard) -> StreamForwardService
pub fn with_shutdown_guard(self, guard: ShutdownGuard) -> StreamForwardService
ShutdownGuard used to observe graceful-shutdown signals.
When the guard fires, the bridge closes with reason
BridgeCloseReason::Shutdown.
None (the default) means no shutdown observation.
pub fn set_shutdown_guard(
&mut self,
guard: ShutdownGuard,
) -> &mut StreamForwardService
pub fn set_shutdown_guard( &mut self, guard: ShutdownGuard, ) -> &mut StreamForwardService
ShutdownGuard used to observe graceful-shutdown signals.
When the guard fires, the bridge closes with reason
BridgeCloseReason::Shutdown.
None (the default) means no shutdown observation.
pub fn without_shutdown_guard(self) -> StreamForwardService
pub fn without_shutdown_guard(self) -> StreamForwardService
ShutdownGuard used to observe graceful-shutdown signals.
When the guard fires, the bridge closes with reason
BridgeCloseReason::Shutdown.
None (the default) means no shutdown observation.
pub fn unset_shutdown_guard(&mut self) -> &mut StreamForwardService
pub fn unset_shutdown_guard(&mut self) -> &mut StreamForwardService
ShutdownGuard used to observe graceful-shutdown signals.
When the guard fires, the bridge closes with reason
BridgeCloseReason::Shutdown.
None (the default) means no shutdown observation.
Trait Implementations§
§impl Clone for StreamForwardService
impl Clone for StreamForwardService
§fn clone(&self) -> StreamForwardService
fn clone(&self) -> StreamForwardService
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 StreamForwardService
impl Debug for StreamForwardService
§impl Default for StreamForwardService
impl Default for StreamForwardService
§fn default() -> StreamForwardService
fn default() -> StreamForwardService
§impl<A, B, T, EA, EB> Service<StreamBridge<A, B>> for StreamForwardService
impl<A, B, T, EA, EB> Service<StreamBridge<A, B>> for StreamForwardService
§type Output = BridgeCloseReason
type Output = BridgeCloseReason
§async fn serve(
&self,
bridge: StreamBridge<A, B>,
) -> Result<<StreamForwardService as Service<StreamBridge<A, B>>>::Output, <StreamForwardService as Service<StreamBridge<A, B>>>::Error>
async fn serve( &self, bridge: StreamBridge<A, B>, ) -> Result<<StreamForwardService as Service<StreamBridge<A, B>>>::Output, <StreamForwardService as Service<StreamBridge<A, B>>>::Error>
§fn boxed(self) -> BoxService<Input, Self::Output, Self::Error>
fn boxed(self) -> BoxService<Input, Self::Output, Self::Error>
Auto Trait Implementations§
impl Freeze for StreamForwardService
impl RefUnwindSafe for StreamForwardService
impl Send for StreamForwardService
impl Sync for StreamForwardService
impl Unpin for StreamForwardService
impl UnsafeUnpin for StreamForwardService
impl UnwindSafe for StreamForwardService
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<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<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