pub struct Rating {
pub total_reviews: u64,
pub total_rating: f64,
pub last_rating: u8,
pub max_rate: u8,
pub min_rate: u8,
}Expand description
User reputation snapshot, suitable for publishing as Nostr tags.
The fields are the same aggregates stored on crate::user::User, but
typed for transport (unsigned integers for counts, u8 for rating values).
Fields§
§total_reviews: u64Total number of ratings received.
total_rating: f64Weighted rating average across all reviews.
last_rating: u8Most recent rating, in the MIN_RATING..=MAX_RATING range.
max_rate: u8Highest rating ever received.
min_rate: u8Lowest rating ever received.
Implementations§
Source§impl Rating
impl Rating
Sourcepub fn new(
total_reviews: u64,
total_rating: f64,
last_rating: u8,
min_rate: u8,
max_rate: u8,
) -> Self
pub fn new( total_reviews: u64, total_rating: f64, last_rating: u8, min_rate: u8, max_rate: u8, ) -> Self
Construct a new Rating from its individual components.
Sourcepub fn from_json(json: &str) -> Result<Self, ServiceError>
pub fn from_json(json: &str) -> Result<Self, ServiceError>
Parse a Rating from its JSON representation.
Returns ServiceError::MessageSerializationError if json is not a
valid serialization of this type.
Sourcepub fn as_json(&self) -> Result<String, ServiceError>
pub fn as_json(&self) -> Result<String, ServiceError>
Serialize the rating to a JSON string.
Encode the rating as a set of Nostr tags, ready to attach to an event.
The returned Tags value contains one entry per numeric field plus
a z marker tag identifying the payload as a rating.
Rebuild a Rating from a set of Nostr tags previously produced by
Rating::to_tags.
Unknown tag keys are ignored so that the function keeps working if the
server adds new metadata fields. Returns a ServiceError if a
required key carries a non-parseable value.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Rating
impl<'de> Deserialize<'de> for Rating
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>,
Auto Trait Implementations§
impl Freeze for Rating
impl RefUnwindSafe for Rating
impl Send for Rating
impl Sync for Rating
impl Unpin for Rating
impl UnsafeUnpin for Rating
impl UnwindSafe for Rating
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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