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
sourceimpl<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
sourceimpl<T> Clone for QualityItem<T>where
T: Clone,
impl<T> Clone for QualityItem<T>where
T: Clone,
sourcefn clone(&self) -> QualityItem<T>
fn clone(&self) -> QualityItem<T>
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresourceimpl<T> Debug for QualityItem<T>where
T: Debug,
impl<T> Debug for QualityItem<T>where
T: Debug,
sourceimpl<T> Display for QualityItem<T>where
T: Display,
impl<T> Display for QualityItem<T>where
T: Display,
sourceimpl<T> FromStr for QualityItem<T>where
T: FromStr,
impl<T> FromStr for QualityItem<T>where
T: FromStr,
type Err = ParseError
type Err = ParseError
sourcefn 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 moresourceimpl<T> PartialEq<QualityItem<T>> for QualityItem<T>where
T: PartialEq<T>,
impl<T> PartialEq<QualityItem<T>> for QualityItem<T>where
T: PartialEq<T>,
sourcefn eq(&self, other: &QualityItem<T>) -> bool
fn eq(&self, other: &QualityItem<T>) -> bool
sourceimpl<T> PartialOrd<QualityItem<T>> for QualityItem<T>where
T: PartialEq<T>,
impl<T> PartialOrd<QualityItem<T>> for QualityItem<T>where
T: PartialEq<T>,
sourcefn partial_cmp(&self, other: &QualityItem<T>) -> Option<Ordering>
fn partial_cmp(&self, other: &QualityItem<T>) -> Option<Ordering>
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self and other) and is used by the <=
operator. Read moreimpl<T> Copy for QualityItem<T>where
T: Copy,
impl<T> Eq for QualityItem<T>where
T: Eq,
impl<T> StructuralEq for QualityItem<T>
impl<T> StructuralPartialEq for QualityItem<T>
Auto Trait Implementations
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
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.