Struct relevancy::InterestMetrics

source ·
pub struct InterestMetrics {
    pub top_single_interest_similarity: u32,
    pub top_2interest_similarity: u32,
    pub top_3interest_similarity: u32,
}
Expand description

Interest metrics that we want to send to Glean as part of the validation process. These contain the cosine similarity when comparing the user’s interest against various interest vectors that consumers may use.

Cosine similarly was chosen because it seems easy to calculate. This was then matched against some semi-plausible real-world interest vectors that consumers might use. This is all up for debate and we may decide to switch to some other metrics.

Similarity values are transformed to integers by multiplying the floating point value by 1000 and rounding. This is to make them compatible with Glean’s distribution metrics.

Fields§

§top_single_interest_similarity: u32

Similarity between the user’s interest vector and an interest vector where the element for the user’s top interest is copied, but all other interests are set to zero. This measures the highest possible similarity with consumers that used interest vectors with a single interest set.

§top_2interest_similarity: u32

The same as before, but the top 2 interests are copied. This measures the highest possible similarity with consumers that used interest vectors with a two interests (note: this means they would need to choose the user’s top two interests and have the exact same proportion between them as the user).

§top_3interest_similarity: u32

The same as before, but the top 3 interests are copied.

Trait Implementations§

source§

impl<UT> ConvertError<UT> for InterestMetrics

source§

fn try_convert_unexpected_callback_error( e: UnexpectedUniFFICallbackError ) -> Result<Self>

source§

impl<UT> FfiConverter<UT> for InterestMetrics

§

type FfiType = RustBuffer

The low-level type used for passing values of this type over the FFI. Read more
source§

fn lower(v: Self) -> RustBuffer

Lower a rust value of the target type, into an FFI value of type Self::FfiType. Read more
source§

fn try_lift(buf: RustBuffer) -> Result<Self>

Lift a rust value of the target type, from an FFI value of type Self::FfiType. Read more
source§

fn write(obj: Self, buf: &mut Vec<u8>)

Write a rust value into a buffer, to send over the FFI in serialized form. Read more
source§

fn try_read(buf: &mut &[u8]) -> Result<Self>

Read a rust value from a buffer, received over the FFI in serialized form. Read more
source§

const TYPE_ID_META: MetadataBuffer = _

Type ID metadata, serialized into a [MetadataBuffer].
source§

impl<UT> Lift<UT> for InterestMetrics

§

type FfiType = <InterestMetrics as FfiConverter<UT>>::FfiType

source§

fn try_lift(v: Self::FfiType) -> Result<Self>

source§

fn try_read(buf: &mut &[u8]) -> Result<Self>

§

fn try_lift_from_rust_buffer(v: RustBuffer) -> Result<Self, Error>

Convenience method
source§

impl<UT> LiftRef<UT> for InterestMetrics

source§

impl<UT> LiftReturn<UT> for InterestMetrics

§

type ReturnType = <InterestMetrics as Lift<UT>>::FfiType

FFI return type for trait interfaces
source§

fn try_lift_successful_return(v: Self::ReturnType) -> Result<Self>

Lift a successfully returned value from a trait interface
§

fn lift_foreign_return( ffi_return: Self::ReturnType, call_status: RustCallStatus ) -> Self

Lift a foreign returned value from a trait interface Read more
§

fn lift_error(_buf: RustBuffer) -> Self

Lift a Rust value for a callback interface method error result Read more
§

fn handle_callback_unexpected_error(e: UnexpectedUniFFICallbackError) -> Self

Lift a Rust value for an unexpected callback interface error Read more
source§

impl<UT> Lower<UT> for InterestMetrics

§

type FfiType = <InterestMetrics as FfiConverter<UT>>::FfiType

source§

fn lower(obj: Self) -> Self::FfiType

source§

fn write(obj: Self, buf: &mut Vec<u8>)

§

fn lower_into_rust_buffer(obj: Self) -> RustBuffer

Convenience method
source§

impl<UT> LowerError<UT> for InterestMetrics

source§

fn lower_error(obj: Self) -> RustBuffer

Lower this value for scaffolding function return Read more
source§

impl<UT> LowerReturn<UT> for InterestMetrics

§

type ReturnType = <InterestMetrics as Lower<UT>>::FfiType

The type that should be returned by scaffolding functions for this type. Read more
source§

fn lower_return(v: Self) -> Result<Self::ReturnType, RustCallError>

Lower the return value from an scaffolding call Read more
§

fn handle_failed_lift( error: LiftArgsError ) -> Result<Self::ReturnType, RustCallError>

Lower the return value for failed argument lifts Read more
source§

impl<UT> TypeId<UT> for InterestMetrics

source§

const TYPE_ID_META: MetadataBuffer = _

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, UT> HandleAlloc<UT> for T
where T: Send + Sync,

§

fn new_handle(value: Arc<T>) -> Handle

Create a new handle for an Arc value Read more
§

unsafe fn clone_handle(handle: Handle) -> Handle

Clone a handle Read more
§

unsafe fn consume_handle(handle: Handle) -> Arc<T>

Consume a handle, getting back the initial Arc<> Read more
§

unsafe fn get_arc(handle: Handle) -> Arc<Self>

Get a clone of the Arc<> using a “borrowed” handle. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.