Struct EchoService
pub struct EchoService { /* private fields */ }
Expand description
An async service which echoes the incoming bytes back on the same stream.
§Example
use rama_core::{error::BoxError, Context, Service};
use rama_net::stream::service::EchoService;
let service = EchoService::new();
let bytes_copied = service.serve(Context::default(), stream).await?;
Implementations§
§impl EchoService
impl EchoService
pub const fn new() -> EchoService
pub const fn new() -> EchoService
Creates a new EchoService
,
Trait Implementations§
§impl Clone for EchoService
impl Clone for EchoService
§fn clone(&self) -> EchoService
fn clone(&self) -> EchoService
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read more§impl Debug for EchoService
impl Debug for EchoService
§impl Default for EchoService
impl Default for EchoService
§fn default() -> EchoService
fn default() -> EchoService
Returns the “default value” for a type. Read more
§impl<S> Service<S> for EchoServicewhere
S: Stream + 'static,
impl<S> Service<S> for EchoServicewhere
S: Stream + 'static,
§async fn serve(
&self,
_ctx: Context,
stream: S,
) -> Result<<EchoService as Service<S>>::Response, <EchoService as Service<S>>::Error>
async fn serve( &self, _ctx: Context, stream: S, ) -> Result<<EchoService as Service<S>>::Response, <EchoService as Service<S>>::Error>
Serve a response or error for the given request,
using the given context.
§fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
fn boxed(self) -> BoxService<Request, Self::Response, Self::Error>
Box this service to allow for dynamic dispatch.
Auto Trait Implementations§
impl Freeze for EchoService
impl RefUnwindSafe for EchoService
impl Send for EchoService
impl Sync for EchoService
impl Unpin for EchoService
impl UnwindSafe for EchoService
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
Mutably borrows from an owned value. Read more
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> ⓘ
Converts
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> ⓘ
Converts
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> 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>
Create a new
Policy
that returns Action::Follow
only if self
and other
return
Action::Follow
. Read more