Struct UserAgentProfileInput
pub struct UserAgentProfileInput {Show 17 fields
pub uastr: String,
pub h1_settings: Option<Http1Settings>,
pub h1_headers_navigate: Option<HeaderMap>,
pub h1_headers_fetch: Option<HeaderMap>,
pub h1_headers_xhr: Option<HeaderMap>,
pub h1_headers_form: Option<HeaderMap>,
pub h1_headers_ws: Option<HeaderMap>,
pub h2_settings: Option<Http2Settings>,
pub h2_headers_navigate: Option<HeaderMap>,
pub h2_headers_fetch: Option<HeaderMap>,
pub h2_headers_xhr: Option<HeaderMap>,
pub h2_headers_form: Option<HeaderMap>,
pub h2_headers_ws: Option<HeaderMap>,
pub tls_client_hello: Option<ClientHello>,
pub tls_ws_client_config_overwrites: Option<WsClientConfigOverwrites>,
pub js_web_apis: Option<JsProfileWebApis>,
pub source_info: Option<UserAgentSourceInfo>,
}Available on crate features
std and ua only.Expand description
Serializable user-agent profile input used by Rama’s embedded and custom profile databases.
Fields are optional because fingerprint collection often observes HTTP/1,
HTTP/2 and TLS over separate connections. Multiple rows with the same
uastr can therefore be combined without inventing unobserved data.
Fields§
§uastr: String§h1_settings: Option<Http1Settings>§h1_headers_fetch: Option<HeaderMap>§h1_headers_xhr: Option<HeaderMap>§h1_headers_form: Option<HeaderMap>§h1_headers_ws: Option<HeaderMap>§h2_settings: Option<Http2Settings>§h2_headers_fetch: Option<HeaderMap>§h2_headers_xhr: Option<HeaderMap>§h2_headers_form: Option<HeaderMap>§h2_headers_ws: Option<HeaderMap>§tls_client_hello: Option<ClientHello>Available on crate feature
§tls only.tls_ws_client_config_overwrites: Option<WsClientConfigOverwrites>Available on crate feature
§tls only.js_web_apis: Option<JsProfileWebApis>§source_info: Option<UserAgentSourceInfo>Implementations§
§impl UserAgentProfileInput
impl UserAgentProfileInput
pub fn new(uastr: impl Into<String>) -> UserAgentProfileInput
pub fn new(uastr: impl Into<String>) -> UserAgentProfileInput
Create an empty captured profile row for a User-Agent value.
pub fn merge_missing(
&mut self,
other: UserAgentProfileInput,
) -> Result<(), Box<dyn Error + Send + Sync>>
pub fn merge_missing( &mut self, other: UserAgentProfileInput, ) -> Result<(), Box<dyn Error + Send + Sync>>
Fill fields absent from this row with observations from another row for the exact same User-Agent. Existing observations always win.
Trait Implementations§
§impl Debug for UserAgentProfileInput
impl Debug for UserAgentProfileInput
§impl<'de> Deserialize<'de> for UserAgentProfileInput
impl<'de> Deserialize<'de> for UserAgentProfileInput
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<UserAgentProfileInput, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<UserAgentProfileInput, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
§impl Serialize for UserAgentProfileInput
impl Serialize for UserAgentProfileInput
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for UserAgentProfileInput
impl RefUnwindSafe for UserAgentProfileInput
impl Send for UserAgentProfileInput
impl Sync for UserAgentProfileInput
impl Unpin for UserAgentProfileInput
impl UnsafeUnpin for UserAgentProfileInput
impl UnwindSafe for UserAgentProfileInput
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§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> ⓘ
Converts
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> ⓘ
Converts
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>
Wrap the input message
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>
Create a new
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more