diff --git a/src/bytes.rs b/src/bytes.rs index 5945f3d..b53fbff 100644 --- a/src/bytes.rs +++ b/src/bytes.rs @@ -2525,3 +2525,17 @@ impl<'a, T: ?Sized> PartialOrd<&'a T> for Bytes self.partial_cmp(&**other) } } + +impl PartialEq for Bytes +{ + fn eq(&self, other: &BytesMut) -> bool { + &other[..] == &self[..] + } +} + +impl PartialEq for BytesMut +{ + fn eq(&self, other: &Bytes) -> bool { + &other[..] == &self[..] + } +} diff --git a/tests/test_bytes.rs b/tests/test_bytes.rs index b966fe0..1c8ccd0 100644 --- a/tests/test_bytes.rs +++ b/tests/test_bytes.rs @@ -503,3 +503,14 @@ fn stress() { assert_eq!(*buf, data[..]); } } + +#[test] +fn partial_eq_bytesmut() { + let bytes = Bytes::from(&b"The quick red fox"[..]); + let bytesmut = BytesMut::from(&b"The quick red fox"[..]); + assert!(bytes == bytesmut); + assert!(bytesmut == bytes); + let bytes2 = Bytes::from(&b"Jumped over the lazy brown dog"[..]); + assert!(bytes2 != bytesmut); + assert!(bytesmut != bytes2); +}