pub struct QualityItem<T> {
pub item: T,
pub quality: Quality,
}Expand description
Represents an item with a quality value as defined in RFC 7231 §5.3.1.
§Parsing and Formatting
This wrapper be used to parse header value items that have a q-factor annotation as well as serialize items with a their q-factor.
§Ordering
Since this context of use for this type is header value items, ordering is defined for
QualityItems but only considers the item’s quality. Order of appearance should be used as
the secondary sorting parameter; i.e., a stable sort over the quality values will produce a
correctly sorted sequence.
§Examples
let q_item: QualityItem<String> = "hello;q=0.3".parse().unwrap();
assert_eq!(&q_item.item, "hello");
assert_eq!(q_item.quality, q(0.3));
// note that format is normalized compared to parsed item
assert_eq!(q_item.to_string(), "hello; q=0.3");
// item with q=0.3 is greater than item with q=0.1
let q_item_fallback: QualityItem<String> = "abc;q=0.1".parse().unwrap();
assert!(q_item > q_item_fallback);Fields§
§item: TThe wrapped contents of the field.
quality: QualityThe quality (client or server preference) for the value.
Implementations§
Source§impl<T> QualityItem<T>
impl<T> QualityItem<T>
Sourcepub fn new(item: T, quality: Quality) -> Self
pub fn new(item: T, quality: Quality) -> Self
Constructs a new QualityItem from an item and a quality value.
The item can be of any type. The quality should be a value in the range [0, 1].
Sourcepub fn max(item: T) -> Self
pub fn max(item: T) -> Self
Constructs a new QualityItem from an item, using the maximum q-value.
Trait Implementations§
Source§impl<T: Clone> Clone for QualityItem<T>
impl<T: Clone> Clone for QualityItem<T>
Source§fn clone(&self) -> QualityItem<T>
fn clone(&self) -> QualityItem<T>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<T: Debug> Debug for QualityItem<T>
impl<T: Debug> Debug for QualityItem<T>
Source§impl<T: Display> Display for QualityItem<T>
impl<T: Display> Display for QualityItem<T>
Source§impl<T: FromStr> FromStr for QualityItem<T>
impl<T: FromStr> FromStr for QualityItem<T>
Source§impl<T: PartialEq> PartialEq for QualityItem<T>
impl<T: PartialEq> PartialEq for QualityItem<T>
Source§impl<T: PartialEq> PartialOrd for QualityItem<T>
impl<T: PartialEq> PartialOrd for QualityItem<T>
impl<T: Copy> Copy for QualityItem<T>
impl<T: Eq> Eq for QualityItem<T>
impl<T> StructuralPartialEq for QualityItem<T>
Auto Trait Implementations§
impl<T> Freeze for QualityItem<T>where
T: Freeze,
impl<T> RefUnwindSafe for QualityItem<T>where
T: RefUnwindSafe,
impl<T> Send for QualityItem<T>where
T: Send,
impl<T> Sync for QualityItem<T>where
T: Sync,
impl<T> Unpin for QualityItem<T>where
T: Unpin,
impl<T> UnwindSafe for QualityItem<T>where
T: UnwindSafe,
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.