Struct LegacyFieldCapture
pub struct LegacyFieldCapture {
pub field: LegacyField,
pub value: LegacyFieldValue,
}Available on crate features
std and ua only.Fields§
§field: LegacyField§value: LegacyFieldValueImplementations§
§impl LegacyFieldCapture
impl LegacyFieldCapture
pub fn analyze_row(
row: &UserAgentProfileInput,
limits: ProfileAnalysisLimits,
) -> Result<Option<AnalyzedProfile>, ProfileDataError>
pub fn analyze_row( row: &UserAgentProfileInput, limits: ProfileAnalysisLimits, ) -> Result<Option<AnalyzedProfile>, ProfileDataError>
Analyse a legacy row as one observation per recorded field.
Header fields become request flows with the method the old schema implied for them,
and the H2 settings and TLS ClientHello become connection tuples. Fields that
cannot be captured or cannot form a valid tuple are skipped with a debug trace; None means nothing was usable.
§impl LegacyFieldCapture
impl LegacyFieldCapture
pub fn canonical( &self, maximum: usize, ) -> Result<CanonicalValue, ProfileDataError>
pub fn structural(
&self,
maximum: usize,
) -> Result<CanonicalValue, ProfileDataError>
pub fn structural( &self, maximum: usize, ) -> Result<CanonicalValue, ProfileDataError>
Legacy fields have no reliable population or cross-field correlation. A coarse field bucket bounds revisions without promoting generated rules.
pub fn from_canonical( value: &CanonicalValue, maximum: usize, ) -> Result<LegacyFieldCapture, ProfileDataError>
pub fn prepare_row(
row: &UserAgentProfileInput,
authorized: bool,
limits: JointCaptureLimits,
) -> Result<Option<PreparedProfileCapture>, ProfileDataError>
pub fn prepare_row( row: &UserAgentProfileInput, authorized: bool, limits: JointCaptureLimits, ) -> Result<Option<PreparedProfileCapture>, ProfileDataError>
Prepare independent legacy fields as one atomic storage batch. No joint tuple or request method is inferred from an overwrite-schema row.
pub fn capture_row( row: &UserAgentProfileInput, maximum: usize, ) -> Result<Box<[LegacyFieldCapture]>, ProfileDataError>
pub fn capture_row_lenient(
row: &UserAgentProfileInput,
maximum: usize,
) -> Result<Box<[LegacyFieldCapture]>, ProfileDataError>
pub fn capture_row_lenient( row: &UserAgentProfileInput, maximum: usize, ) -> Result<Box<[LegacyFieldCapture]>, ProfileDataError>
Like Self::capture_row, but skips fields that cannot be captured.
Trait Implementations§
§impl Clone for LegacyFieldCapture
impl Clone for LegacyFieldCapture
§fn clone(&self) -> LegacyFieldCapture
fn clone(&self) -> LegacyFieldCapture
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read more§impl Debug for LegacyFieldCapture
impl Debug for LegacyFieldCapture
§impl Serialize for LegacyFieldCapture
impl Serialize for LegacyFieldCapture
§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 LegacyFieldCapture
impl RefUnwindSafe for LegacyFieldCapture
impl Send for LegacyFieldCapture
impl Sync for LegacyFieldCapture
impl Unpin for LegacyFieldCapture
impl UnsafeUnpin for LegacyFieldCapture
impl UnwindSafe for LegacyFieldCapture
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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