mirror of https://github.com/rwf2/Rocket.git
Implement 'Eq' for 'MediaType', 'ContentType'.
This also fixes the 'Hash' implementation to match the docs. Resolves #2132.
This commit is contained in:
parent
38bd5663c2
commit
4d83f73f86
|
@ -40,7 +40,7 @@ use crate::ext::IntoCollection;
|
||||||
///
|
///
|
||||||
/// let response = Response::build().header(ContentType::HTML).finalize();
|
/// let response = Response::build().header(ContentType::HTML).finalize();
|
||||||
/// ```
|
/// ```
|
||||||
#[derive(Debug, Clone, PartialEq, Hash)]
|
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
|
||||||
pub struct ContentType(pub MediaType);
|
pub struct ContentType(pub MediaType);
|
||||||
|
|
||||||
macro_rules! content_types {
|
macro_rules! content_types {
|
||||||
|
|
|
@ -467,13 +467,15 @@ impl MediaType {
|
||||||
|
|
||||||
/// Compares `self` with `other` and returns `true` if `self` and `other`
|
/// Compares `self` with `other` and returns `true` if `self` and `other`
|
||||||
/// are exactly equal to each other, including with respect to their
|
/// are exactly equal to each other, including with respect to their
|
||||||
/// parameters.
|
/// parameters and their order.
|
||||||
///
|
///
|
||||||
/// This is different from the `PartialEq` implementation in that it
|
/// This is different from the `PartialEq` implementation in that it
|
||||||
/// considers parameters. If `PartialEq` returns false, this function is
|
/// considers parameters. In particular, `Eq` implies `PartialEq` but
|
||||||
/// guaranteed to return false. Similarly, if this function returns `true`,
|
/// `PartialEq` does not imply `Eq`. That is, if `PartialEq` returns false,
|
||||||
/// `PartialEq` is guaranteed to return true. However, if `PartialEq`
|
/// this function is guaranteed to return false. Similarly, if `exact_eq`
|
||||||
/// returns `true`, this function may or may not return `true`.
|
/// returns `true`, `PartialEq` is guaranteed to return true. However, if
|
||||||
|
/// `PartialEq` returns `true`, `exact_eq` function may or may not return
|
||||||
|
/// `true`.
|
||||||
///
|
///
|
||||||
/// # Example
|
/// # Example
|
||||||
///
|
///
|
||||||
|
@ -572,16 +574,13 @@ impl PartialEq for MediaType {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Eq for MediaType { }
|
||||||
|
|
||||||
impl Hash for MediaType {
|
impl Hash for MediaType {
|
||||||
#[inline]
|
#[inline]
|
||||||
fn hash<H: Hasher>(&self, state: &mut H) {
|
fn hash<H: Hasher>(&self, state: &mut H) {
|
||||||
self.top().hash(state);
|
self.top().hash(state);
|
||||||
self.sub().hash(state);
|
self.sub().hash(state);
|
||||||
|
|
||||||
for (key, val) in self.params() {
|
|
||||||
key.hash(state);
|
|
||||||
val.hash(state);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue