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 q-value.
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>
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.
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>
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>,
sourcefn eq(&self, other: &QualityItem<T>) -> bool
fn eq(&self, other: &QualityItem<T>) -> bool
This method tests for self and other values to be equal, and is used
by ==. Read more
sourcefn ne(&self, other: &QualityItem<T>) -> bool
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>,
sourcefn partial_cmp(&self, other: &QualityItem<T>) -> Option<Ordering>
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> 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 · sourcefn borrow_mut(&mut self) -> &mut T
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,
sourcefn equivalent(&self, key: &K) -> bool
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> 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
