pub struct VariantMetrics {
pub impressions: u64,
pub clicks: u64,
pub positive_feedback: u64,
pub negative_feedback: u64,
pub total_relevance_score: f64,
pub total_latency_us: u64,
pub latency_samples: u64,
pub unique_users: u64,
pub clicked_memory_ids: Vec<Uuid>,
}Expand description
Metrics tracked for each variant
Fields§
§impressions: u64Number of times this variant was shown
clicks: u64Number of times user interacted positively (clicked/used memory)
positive_feedback: u64Number of explicit positive feedback signals
negative_feedback: u64Number of explicit negative feedback signals
total_relevance_score: f64Sum of relevance scores for computing average
total_latency_us: u64Sum of latencies in microseconds
latency_samples: u64Number of latency samples
unique_users: u64Unique users in this variant
clicked_memory_ids: Vec<Uuid>Memory IDs that received clicks (for analysis)
Implementations§
Source§impl VariantMetrics
impl VariantMetrics
Sourcepub fn success_rate(&self) -> f64
pub fn success_rate(&self) -> f64
Success rate (positive / (positive + negative))
Sourcepub fn avg_relevance_score(&self) -> f64
pub fn avg_relevance_score(&self) -> f64
Average relevance score
Sourcepub fn avg_latency_ms(&self) -> f64
pub fn avg_latency_ms(&self) -> f64
Average latency in milliseconds
Sourcepub fn conversion_rate(&self) -> f64
pub fn conversion_rate(&self) -> f64
Conversion rate per unique user
Trait Implementations§
Source§impl Clone for VariantMetrics
impl Clone for VariantMetrics
Source§fn clone(&self) -> VariantMetrics
fn clone(&self) -> VariantMetrics
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for VariantMetrics
impl Debug for VariantMetrics
Source§impl Default for VariantMetrics
impl Default for VariantMetrics
Source§fn default() -> VariantMetrics
fn default() -> VariantMetrics
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for VariantMetrics
impl<'de> Deserialize<'de> for VariantMetrics
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for VariantMetrics
impl RefUnwindSafe for VariantMetrics
impl Send for VariantMetrics
impl Sync for VariantMetrics
impl Unpin for VariantMetrics
impl UnsafeUnpin for VariantMetrics
impl UnwindSafe for VariantMetrics
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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>
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