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) -> QualityItem<T>
pub fn new(item: T, quality: Quality) -> QualityItem<T>
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) -> QualityItem<T>
pub fn max(item: T) -> QualityItem<T>
Constructs a new QualityItem from an item, using the maximum q-value.
Sourcepub fn min(item: T) -> QualityItem<T>
pub fn min(item: T) -> QualityItem<T>
Constructs a new QualityItem from an item, using the minimum, non-zero q-value.
Sourcepub fn zero(item: T) -> QualityItem<T>
pub fn zero(item: T) -> QualityItem<T>
Constructs a new QualityItem from an item, using zero q-value of zero.
Trait Implementations§
Source§impl<T> Clone for QualityItem<T>where
T: Clone,
impl<T> Clone for QualityItem<T>where
T: Clone,
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 for QualityItem<T>where
T: Debug,
impl<T> Debug for QualityItem<T>where
T: Debug,
Source§impl<T> Display for QualityItem<T>where
T: Display,
impl<T> Display for QualityItem<T>where
T: Display,
Source§impl<T> FromStr for QualityItem<T>where
T: FromStr,
impl<T> FromStr for QualityItem<T>where
T: FromStr,
Source§type Err = ParseError
type Err = ParseError
Source§fn from_str(
q_item_str: &str,
) -> Result<QualityItem<T>, <QualityItem<T> as FromStr>::Err>
fn from_str( q_item_str: &str, ) -> Result<QualityItem<T>, <QualityItem<T> as FromStr>::Err>
s to return a value of this type. Read moreSource§impl<T> PartialEq for QualityItem<T>where
T: PartialEq,
impl<T> PartialEq for QualityItem<T>where
T: PartialEq,
Source§impl<T> PartialOrd for QualityItem<T>where
T: PartialEq,
impl<T> PartialOrd for QualityItem<T>where
T: PartialEq,
impl<T> Copy for QualityItem<T>where
T: Copy,
impl<T> Eq for QualityItem<T>where
T: Eq,
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.