Struct HttpPeekConfig
#[non_exhaustive]pub struct HttpPeekConfig {
pub timeout: Option<Duration>,
pub timeout_policy: PeekTimeoutPolicy,
pub max_http1_request_line_size: usize,
pub read_buffer_size: usize,
pub skipped_http1_methods: &'static [&'static str],
}net only.Expand description
Configuration used while detecting HTTP on a byte stream.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.timeout: Option<Duration>timeout applied to the complete HTTP peek operation
timeout_policy: PeekTimeoutPolicypolicy applied when the timeout expires before HTTP detection reaches a definitive match or rejection
max_http1_request_line_size: usizemaximum number of bytes inspected for an HTTP/1 request-line
read_buffer_size: usizemaximum number of bytes requested per transport read
skipped_http1_methods: &'static [&'static str]HTTP/1 method prefixes routed to the fallback before a delimiter.
Matching is case-sensitive and fail-fast, so PING also skips PINGX.
Empty or invalid method tokens cannot match.
Implementations§
§impl HttpPeekConfig
impl HttpPeekConfig
pub fn new() -> HttpPeekConfig
pub fn new() -> HttpPeekConfig
Create an HTTP peek configuration using the defaults.
pub fn with_timeout_policy(
self,
timeout_policy: PeekTimeoutPolicy,
) -> HttpPeekConfig
pub fn with_timeout_policy( self, timeout_policy: PeekTimeoutPolicy, ) -> HttpPeekConfig
Set how an inconclusive HTTP peek timeout is handled.
Defaults to PeekTimeoutPolicy::FailOpen. A definitive non-HTTP
prefix remains a normal non-match under either policy.
pub fn set_timeout_policy(
&mut self,
timeout_policy: PeekTimeoutPolicy,
) -> &mut HttpPeekConfig
pub fn set_timeout_policy( &mut self, timeout_policy: PeekTimeoutPolicy, ) -> &mut HttpPeekConfig
Set how an inconclusive HTTP peek timeout is handled.
Defaults to PeekTimeoutPolicy::FailOpen. A definitive non-HTTP
prefix remains a normal non-match under either policy.
pub fn with_known_non_http_protocol_methods(self) -> HttpPeekConfig
pub fn with_known_non_http_protocol_methods(self) -> HttpPeekConfig
Use KNOWN_NON_HTTP_PROTOCOL_METHODS as the skipped method list.
pub fn set_known_non_http_protocol_methods(&mut self) -> &mut HttpPeekConfig
pub fn set_known_non_http_protocol_methods(&mut self) -> &mut HttpPeekConfig
Use KNOWN_NON_HTTP_PROTOCOL_METHODS as the skipped method list.
pub fn with_skipped_http1_methods(
self,
skipped_http1_methods: &'static [&'static str],
) -> HttpPeekConfig
pub fn with_skipped_http1_methods( self, skipped_http1_methods: &'static [&'static str], ) -> HttpPeekConfig
pub fn set_skipped_http1_methods(
&mut self,
skipped_http1_methods: &'static [&'static str],
) -> &mut HttpPeekConfig
pub fn set_skipped_http1_methods( &mut self, skipped_http1_methods: &'static [&'static str], ) -> &mut HttpPeekConfig
Trait Implementations§
§impl Clone for HttpPeekConfig
impl Clone for HttpPeekConfig
§fn clone(&self) -> HttpPeekConfig
fn clone(&self) -> HttpPeekConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for HttpPeekConfig
§impl Debug for HttpPeekConfig
impl Debug for HttpPeekConfig
§impl Default for HttpPeekConfig
impl Default for HttpPeekConfig
§fn default() -> HttpPeekConfig
fn default() -> HttpPeekConfig
impl Eq for HttpPeekConfig
§impl PartialEq for HttpPeekConfig
impl PartialEq for HttpPeekConfig
impl StructuralPartialEq for HttpPeekConfig
Auto Trait Implementations§
impl Freeze for HttpPeekConfig
impl RefUnwindSafe for HttpPeekConfig
impl Send for HttpPeekConfig
impl Sync for HttpPeekConfig
impl Unpin for HttpPeekConfig
impl UnsafeUnpin for HttpPeekConfig
impl UnwindSafe for HttpPeekConfig
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<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
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<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