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,
sourcepub fn clone(&self) -> QualityItem<T>
pub fn clone(&self) -> QualityItem<T>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl<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
The associated error which can be returned from parsing.
sourcepub fn from_str(
q_item_str: &str
) -> Result<QualityItem<T>, <QualityItem<T> as FromStr>::Err>
pub fn from_str(
q_item_str: &str
) -> Result<QualityItem<T>, <QualityItem<T> as FromStr>::Err>
Parses a string s to return a value of this type. Read more
sourceimpl<T> PartialEq<QualityItem<T>> for QualityItem<T> where
T: PartialEq<T>,
impl<T> PartialEq<QualityItem<T>> for QualityItem<T> where
T: PartialEq<T>,
sourcepub fn eq(&self, other: &QualityItem<T>) -> bool
pub fn eq(&self, other: &QualityItem<T>) -> bool
This method tests for self and other values to be equal, and is used
by ==. Read more
sourcepub fn ne(&self, other: &QualityItem<T>) -> bool
pub fn ne(&self, other: &QualityItem<T>) -> bool
This method tests for !=.
sourceimpl<T> PartialOrd<QualityItem<T>> for QualityItem<T> where
T: PartialEq<T>,
impl<T> PartialOrd<QualityItem<T>> for QualityItem<T> where
T: PartialEq<T>,
sourcepub fn partial_cmp(&self, other: &QualityItem<T>) -> Option<Ordering>
pub fn partial_cmp(&self, other: &QualityItem<T>) -> Option<Ordering>
This method returns an ordering between self and other values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
impl<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 T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcepub fn equivalent(&self, key: &K) -> bool
pub fn equivalent(&self, key: &K) -> bool
Compare self to key and return true if they are equal.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more
