Struct DiscardService
#[non_exhaustive]pub struct DiscardService;Expand description
An async service which discard all the incoming bytes, and sents no response back.
This service is often used when accepting TCP or UDP
services on port 9, as an implementation of RFC 863.
§TCP Based Discard Service
One discard service is defined as a connection based application on
TCP. A server listens for TCP connections on TCP port 9. Once a
connection is established any data received is thrown away. No
response is sent. This continues until the calling user terminates
the connection.
§UDP Based Discard Service
Another discard service is defined as a datagram based application on
UDP. A server listens for UDP datagrams on UDP port 9. When a
datagram is received, it is thrown away. No response is sent.
Implementations§
§impl DiscardService
impl DiscardService
pub const fn new() -> DiscardService
pub const fn new() -> DiscardService
Creates a new DiscardService,
Trait Implementations§
§impl Clone for DiscardService
impl Clone for DiscardService
§fn clone(&self) -> DiscardService
fn clone(&self) -> DiscardService
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 DiscardService
impl Debug for DiscardService
§impl Default for DiscardService
impl Default for DiscardService
§fn default() -> DiscardService
fn default() -> DiscardService
Returns the “default value” for a type. Read more
§impl<S> Service<S> for DiscardServicewhere
S: Stream + 'static,
impl<S> Service<S> for DiscardServicewhere
S: Stream + 'static,
§async fn serve(
&self,
stream: S,
) -> Result<<DiscardService as Service<S>>::Response, <DiscardService as Service<S>>::Error>
async fn serve( &self, stream: S, ) -> Result<<DiscardService as Service<S>>::Response, <DiscardService 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 DiscardService
impl RefUnwindSafe for DiscardService
impl Send for DiscardService
impl Sync for DiscardService
impl Unpin for DiscardService
impl UnwindSafe for DiscardService
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§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<S, RequestIn, RequestOut> RequestInspector<RequestIn> for S
impl<S, RequestIn, RequestOut> RequestInspector<RequestIn> for S
type RequestOut = RequestOut
§fn inspect_request(
&self,
req: RequestIn,
) -> impl Future<Output = Result<<S as RequestInspector<RequestIn>>::RequestOut, <S as RequestInspector<RequestIn>>::Error>> + Send
fn inspect_request( &self, req: RequestIn, ) -> impl Future<Output = Result<<S as RequestInspector<RequestIn>>::RequestOut, <S as RequestInspector<RequestIn>>::Error>> + Send
Inspect the request, modify it if needed or desired, and return it.