pub struct Http2Fingerprint {
pub header_table_size: u32,
pub enable_push: bool,
pub max_concurrent_streams: u32,
pub initial_window_size: u32,
pub max_frame_size: u32,
pub max_header_list_size: u32,
pub window_update_size: u32,
pub pseudo_header_order: Vec<&'static str>,
pub priority_frame_mode: PriorityFrameMode,
pub priority_frames: Vec<PriorityFrame>,
}Fields§
§header_table_size: u32§enable_push: bool§max_concurrent_streams: u32§initial_window_size: u32§max_frame_size: u32§max_header_list_size: u32§window_update_size: u32§pseudo_header_order: Vec<&'static str>§priority_frame_mode: PriorityFrameModePRIORITY frame mode (REQ-STL-002-C3). @trace REQ-STL-002 [criterion:REQ-STL-002-C3]
priority_frames: Vec<PriorityFrame>Explicit PRIORITY frames emitted on connection setup (Firefox only). @trace REQ-STL-002 [criterion:REQ-STL-002-C3]
Implementations§
Source§impl Http2Fingerprint
impl Http2Fingerprint
pub fn firefox() -> Http2Fingerprint
pub fn chrome() -> Http2Fingerprint
Sourcepub fn sends_priority_frames(&self) -> bool
pub fn sends_priority_frames(&self) -> bool
Returns true if this profile emits explicit PRIORITY frames (REQ-STL-002-C3). @trace REQ-STL-002 [criterion:REQ-STL-002-C3]
Sourcepub fn priority_frame_payload(&self) -> &[PriorityFrame]
pub fn priority_frame_payload(&self) -> &[PriorityFrame]
Returns the PRIORITY frames this profile emits on connection setup. @trace REQ-STL-002 [criterion:REQ-STL-002-C3]
Sourcepub fn with_priority_mode(self, mode: PriorityFrameMode) -> Http2Fingerprint
pub fn with_priority_mode(self, mode: PriorityFrameMode) -> Http2Fingerprint
Builder: returns a copy with the given PRIORITY mode (REQ-STL-002-C3). @trace REQ-STL-002 [criterion:REQ-STL-002-C3]
pub fn akamai_fingerprint(&self) -> String
Sourcepub fn settings_frame_payload(&self) -> Vec<(u16, u32)>
pub fn settings_frame_payload(&self) -> Vec<(u16, u32)>
RFC 7540 §6.5.2 setting ids: 0x02 = ENABLE_PUSH, 0x03 = MAX_CONCURRENT_STREAMS, 0x04 = INITIAL_WINDOW_SIZE. The pairs MUST keep each value under its own id — a client advertising ENABLE_PUSH ∉ {0, 1} (e.g. a window size landing in the 0x02 slot) is a mandatory connection-error PROTOCOL_ERROR for the peer (verified against 1.1.1.1: GOAWAY(0x1) before any HEADERS).
pub fn ordered_headers<'a>( &self, headers: &[(&'a str, &'a str)], ) -> Vec<(&'a str, &'a str)>
Trait Implementations§
Source§impl Clone for Http2Fingerprint
impl Clone for Http2Fingerprint
Source§fn clone(&self) -> Http2Fingerprint
fn clone(&self) -> Http2Fingerprint
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Http2Fingerprint
impl Debug for Http2Fingerprint
Source§impl Default for Http2Fingerprint
impl Default for Http2Fingerprint
Source§fn default() -> Http2Fingerprint
fn default() -> Http2Fingerprint
Default = Firefox profile (SPEC REQ-STL-002 mandates Firefox-matching). @trace REQ-STL-002
Auto Trait Implementations§
impl Freeze for Http2Fingerprint
impl RefUnwindSafe for Http2Fingerprint
impl Send for Http2Fingerprint
impl Sync for Http2Fingerprint
impl Unpin for Http2Fingerprint
impl UnsafeUnpin for Http2Fingerprint
impl UnwindSafe for Http2Fingerprint
Blanket Implementations§
Source§impl<T> AsCtxPtr for Twhere
T: ?Sized,
impl<T> AsCtxPtr for Twhere
T: ?Sized,
Source§fn as_ctx_ptr(&self) -> *mut Selfwhere
Self: Sized,
fn as_ctx_ptr(&self) -> *mut Selfwhere
Self: Sized,
self’s address as *mut Self for deferred-task / scopeguard /
ref_guard ctx slots. The closures/trampolines deref it as shared
(&*p) — every method they reach is &self post-R-2, so no write
provenance is required; the *mut spelling is purely to match the
existing DerefOnDrop / HasAutoFlush / RefCount ABI.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> ErasedDestructor for Twhere
T: 'static,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Filterable for T
impl<T> Filterable for T
Source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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