Struct MemoryDatagramControl
pub struct MemoryDatagramControl { /* private fields */ }std and crate feature udp and (crate features test-utils) only.Expand description
Deterministic outbound faults for a MemoryDatagramSocket.
Implementations§
§impl MemoryDatagramControl
impl MemoryDatagramControl
pub fn drop_next(&self, count: usize)
pub fn drop_next(&self, count: usize)
Drop the next count outbound datagrams, including individual GSO segments.
Replaces any remaining drop count. Dropped datagrams consume no queue space.
pub fn duplicate_next(&self, count: usize)
pub fn duplicate_next(&self, count: usize)
Deliver each of the next count surviving outbound datagrams twice, including
individual GSO segments. Replaces any remaining duplication count.
Duplicates never take part in admission: a copy uses a queue slot only when one is spare after the whole send was admitted, and is otherwise skipped without consuming the count. Drops happen first; a copy is delivered before a held reordered original.
pub fn reorder_next_pair(&self) -> Result<(), DatagramError>
pub fn reorder_next_pair(&self) -> Result<(), DatagramError>
Hold one outgoing datagram until the following datagram can pass it.
Requires at least two queue slots. Reserves one slot by lowering the
segmented-send limit to at most capacity - 1, so a held datagram never
prevents an otherwise empty receive queue from accepting a GSO batch.
Drops happen before reordering; only surviving datagrams form the pair.
pub fn stats(&self) -> MemoryDatagramFaultStats
pub fn stats(&self) -> MemoryDatagramFaultStats
Return cumulative applied faults for this direction.
Trait Implementations§
§impl Clone for MemoryDatagramControl
impl Clone for MemoryDatagramControl
§fn clone(&self) -> MemoryDatagramControl
fn clone(&self) -> MemoryDatagramControl
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for MemoryDatagramControl
impl !UnwindSafe for MemoryDatagramControl
impl Freeze for MemoryDatagramControl
impl Send for MemoryDatagramControl
impl Sync for MemoryDatagramControl
impl Unpin for MemoryDatagramControl
impl UnsafeUnpin for MemoryDatagramControl
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
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