Enum DatagramError
#[non_exhaustive]pub enum DatagramError {
Io(Error),
SegmentationRejected(Error),
Unsupported(DatagramFeature),
PayloadTooLarge {
len: usize,
max: usize,
},
InvalidSegmentSize {
payload_len: usize,
segment_size: usize,
},
TooManySegments {
count: usize,
max: usize,
},
SourceAddressFamilyMismatch {
source: IpAddr,
destination: SocketAddress,
},
ReceiveSlotMismatch {
buffers: usize,
metadata: usize,
},
EmptyReceiveBatch,
Closed,
}std and udp only.Expand description
Error from a packet-oriented datagram operation.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Io(Error)
Operating-system or runtime I/O error.
SegmentationRejected(Error)
A validated segmented send was rejected by the socket’s offload implementation.
No segment was accepted. Query capabilities before retrying as ordinary datagrams. The original socket error is retained; other I/O failures are not classified this way.
Unsupported(DatagramFeature)
A requested feature is not available on this socket.
PayloadTooLarge
An unsegmented payload exceeds the implementation ceiling.
InvalidSegmentSize
Segment metadata does not describe the submitted payload.
TooManySegments
A segmented datagram entry contains more segments than supported.
SourceAddressFamilyMismatch
The selected source IP and destination use different address families.
ReceiveSlotMismatch
Receive buffers and metadata slots have different lengths.
EmptyReceiveBatch
A receive operation was submitted without any buffers.
Closed
The deterministic in-memory peer has shut down.
Implementations§
§impl DatagramError
impl DatagramError
pub fn send_failure(&self) -> SendFailure
pub fn send_failure(&self) -> SendFailure
Classify this error for a sender’s failure policy.
Trait Implementations§
§impl Debug for DatagramError
impl Debug for DatagramError
§impl Display for DatagramError
impl Display for DatagramError
§impl Error for DatagramError
impl Error for DatagramError
§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()
§impl From<Error> for DatagramError
impl From<Error> for DatagramError
§fn from(value: Error) -> DatagramError
fn from(value: Error) -> DatagramError
Auto Trait Implementations§
impl !RefUnwindSafe for DatagramError
impl !UnwindSafe for DatagramError
impl Freeze for DatagramError
impl Send for DatagramError
impl Sync for DatagramError
impl Unpin for DatagramError
impl UnsafeUnpin for DatagramError
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<Error> ErrorExt for Error
impl<Error> ErrorExt for Error
§fn into_box_error(self) -> Box<dyn Error + Send + Sync>
fn into_box_error(self) -> Box<dyn Error + Send + Sync>
BoxError without additional context.§fn into_opaque_error(self) -> OpaqueError
fn into_opaque_error(self) -> OpaqueError
OpaqueError without additional context. Read more§fn context_debug<M>(self, value: M) -> Box<dyn Error + Send + Sync>
fn context_debug<M>(self, value: M) -> Box<dyn Error + Send + Sync>
fmt::Debug as fmt::Display.§fn context_field<M>(
self,
key: &'static str,
value: M,
) -> Box<dyn Error + Send + Sync>
fn context_field<M>( self, key: &'static str, value: M, ) -> Box<dyn Error + Send + Sync>
§fn context_str_field<M>(
self,
key: &'static str,
value: M,
) -> Box<dyn Error + Send + Sync>
fn context_str_field<M>( self, key: &'static str, value: M, ) -> Box<dyn Error + Send + Sync>
Self::context_field but using a string-like value,
this is useful in case you need to pass a string slice which is borrowed
and thus cannot be passed as part of ’static error.§fn context_debug_field<M>(
self,
key: &'static str,
value: M,
) -> Box<dyn Error + Send + Sync>
fn context_debug_field<M>( self, key: &'static str, value: M, ) -> Box<dyn Error + Send + Sync>
fmt::Debug as fmt::Display.§fn with_context<C, F>(self, cb: F) -> Box<dyn Error + Send + Sync>
fn with_context<C, F>(self, cb: F) -> Box<dyn Error + Send + Sync>
§fn with_context_debug<C, F>(self, cb: F) -> Box<dyn Error + Send + Sync>
fn with_context_debug<C, F>(self, cb: F) -> Box<dyn Error + Send + Sync>
fmt::Debug as fmt::Display.§fn with_context_field<C, F>(
self,
key: &'static str,
cb: F,
) -> Box<dyn Error + Send + Sync>
fn with_context_field<C, F>( self, key: &'static str, cb: F, ) -> Box<dyn Error + Send + Sync>
§fn with_context_str_field<C, F>(
self,
key: &'static str,
cb: F,
) -> Box<dyn Error + Send + Sync>
fn with_context_str_field<C, F>( self, key: &'static str, cb: F, ) -> Box<dyn Error + Send + Sync>
Self::with_context_field but using a string-like value,
this is useful in case you need to pass a string slice which is borrowed
and thus cannot be passed as part of ’static error.§fn with_context_debug_field<C, F>(
self,
key: &'static str,
cb: F,
) -> Box<dyn Error + Send + Sync>
fn with_context_debug_field<C, F>( self, key: &'static str, cb: F, ) -> Box<dyn Error + Send + Sync>
fmt::Debug as fmt::Display.§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> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§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.