Struct CapsuleDecoder
pub struct CapsuleDecoder { /* private fields */ }http and std only.Expand description
An incremental Capsule Protocol decoder.
Implementations§
§impl CapsuleDecoder
impl CapsuleDecoder
pub fn new(config: CapsuleConfig) -> CapsuleDecoder
pub fn new(config: CapsuleConfig) -> CapsuleDecoder
Create a decoder with the given limits and policy.
pub fn maybe_with_observation(
self,
observation: Option<CapsuleObservation>,
) -> CapsuleDecoder
pub fn maybe_with_observation( self, observation: Option<CapsuleObservation>, ) -> CapsuleDecoder
Observe completed metadata from subsequent capsule headers, without retaining value bytes.
Incomplete capsules never report parsed, including skipped/forwarded values.
pub fn maybe_set_observation(
&mut self,
observation: Option<CapsuleObservation>,
) -> &mut CapsuleDecoder
pub fn maybe_set_observation( &mut self, observation: Option<CapsuleObservation>, ) -> &mut CapsuleDecoder
Observe completed metadata from subsequent capsule headers, without retaining value bytes.
Incomplete capsules never report parsed, including skipped/forwarded values.
pub fn with_observation(self, observation: CapsuleObservation) -> CapsuleDecoder
pub fn with_observation(self, observation: CapsuleObservation) -> CapsuleDecoder
Observe completed metadata from subsequent capsule headers, without retaining value bytes.
Incomplete capsules never report parsed, including skipped/forwarded values.
pub fn set_observation(
&mut self,
observation: CapsuleObservation,
) -> &mut CapsuleDecoder
pub fn set_observation( &mut self, observation: CapsuleObservation, ) -> &mut CapsuleDecoder
Observe completed metadata from subsequent capsule headers, without retaining value bytes.
Incomplete capsules never report parsed, including skipped/forwarded values.
pub fn without_observation(self) -> CapsuleDecoder
pub fn without_observation(self) -> CapsuleDecoder
Observe completed metadata from subsequent capsule headers, without retaining value bytes.
Incomplete capsules never report parsed, including skipped/forwarded values.
pub fn unset_observation(&mut self) -> &mut CapsuleDecoder
pub fn unset_observation(&mut self) -> &mut CapsuleDecoder
Observe completed metadata from subsequent capsule headers, without retaining value bytes.
Incomplete capsules never report parsed, including skipped/forwarded values.
pub fn feed(&mut self, input: Bytes) -> Result<(), CapsuleError>
pub fn feed(&mut self, input: Bytes) -> Result<(), CapsuleError>
Supply the next chunk of the data stream. Drain Self::poll first.
pub fn is_drained(&self) -> bool
pub fn is_drained(&self) -> bool
Whether all fed input has been consumed.
pub fn dropped_datagrams(&self) -> u64
pub fn dropped_datagrams(&self) -> u64
Oversized DATAGRAM capsules discarded so far.
pub fn finish(&self) -> Result<(), CapsuleError>
pub fn finish(&self) -> Result<(), CapsuleError>
Check that a cleanly ended data stream did not end inside a capsule (RFC 9297 §3.3).
pub fn poll(&mut self) -> Result<Option<CapsuleEvent>, CapsuleError>
pub fn poll(&mut self) -> Result<Option<CapsuleEvent>, CapsuleError>
Decode the next event, or None once more input is needed.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for CapsuleDecoder
impl !RefUnwindSafe for CapsuleDecoder
impl !UnwindSafe for CapsuleDecoder
impl Send for CapsuleDecoder
impl Sync for CapsuleDecoder
impl Unpin for CapsuleDecoder
impl UnsafeUnpin for CapsuleDecoder
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<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