Struct NvPair
pub struct NvPair {
pub name: Bytes,
pub value: Bytes,
}fastcgi only.Expand description
A single FastCGI name-value pair (owned).
Used in FCGI_PARAMS and FCGI_GET_VALUES records to carry CGI
environment variables or capability queries.
Reference: FastCGI Specification §3.4
Fields§
§name: Bytes§value: BytesImplementations§
§impl NvPair
impl NvPair
pub fn encoded_len(&self) -> usize
pub fn encoded_len(&self) -> usize
Number of bytes this pair occupies when encoded.
pub fn write_to_buf<B>(&self, buf: &mut B) -> Result<(), ProtocolError>where
B: BufMut,
pub fn write_to_buf<B>(&self, buf: &mut B) -> Result<(), ProtocolError>where
B: BufMut,
Write this pair into the buffer using FastCGI encoding.
Returns ProtocolError::ContentTooLarge if either the name or value
length exceeds MAX_NV_LENGTH (2^31 − 1).
Reference: FastCGI Specification §3.4
pub async fn write_to<W>(&self, w: &mut W) -> Result<(), ProtocolError>where
W: AsyncWrite + Unpin,
pub async fn write_to<W>(&self, w: &mut W) -> Result<(), ProtocolError>where
W: AsyncWrite + Unpin,
Write this pair to a writer using FastCGI encoding.
Reference: FastCGI Specification §3.4
pub async fn read_from<R>(
r: &mut R,
max_pair_bytes: usize,
) -> Result<NvPair, ProtocolError>where
R: AsyncRead + Unpin,
pub async fn read_from<R>(
r: &mut R,
max_pair_bytes: usize,
) -> Result<NvPair, ProtocolError>where
R: AsyncRead + Unpin,
Read a single NvPair from the reader.
Rejects pairs whose declared name + value length would exceed
max_pair_bytes before allocating, returning
ProtocolError::ContentTooLarge. This guards against peer-controlled
length fields (up to 2^31 − 1 per side per the FastCGI spec) from
triggering multi-gigabyte allocations.
Note on cancellation: this function performs multiple sequential
awaits (length, length, bytes, bytes). A future dropped mid-read can
leave the stream desynced. Use decode_params over a pre-read,
already-capped buffer (as the crate’s framing layer does) when
cancellation safety matters.
Reference: FastCGI Specification §3.4
Trait Implementations§
impl Eq for NvPair
impl StructuralPartialEq for NvPair
Auto Trait Implementations§
impl !Freeze for NvPair
impl RefUnwindSafe for NvPair
impl Send for NvPair
impl Sync for NvPair
impl Unpin for NvPair
impl UnsafeUnpin for NvPair
impl UnwindSafe for NvPair
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§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<V, F> ValueFormatter<&V> for F
impl<V, F> ValueFormatter<&V> for F
§fn format_value(writer: impl ValueWriter, value: &&V)
fn format_value(writer: impl ValueWriter, value: &&V)
value to writer§impl<V, F> ValueFormatter<Arc<V>> for F
impl<V, F> ValueFormatter<Arc<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Arc<V>)
fn format_value(writer: impl ValueWriter, value: &Arc<V>)
value to writer§impl<V, F> ValueFormatter<Box<V>> for F
impl<V, F> ValueFormatter<Box<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Box<V>)
fn format_value(writer: impl ValueWriter, value: &Box<V>)
value to writer§impl<V, F> ValueFormatter<Cow<'_, V>> for F
impl<V, F> ValueFormatter<Cow<'_, V>> for F
§fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
value to writer§impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
§fn format_value(writer: impl ValueWriter, value: &Option<V>)
fn format_value(writer: impl ValueWriter, value: &Option<V>)
value to writer