1
0
Fork 0
mirror of https://github.com/sile/hls_m3u8.git synced 2024-06-17 04:20:31 +00:00

removed Eq implementation

f64 and f32 don't implement Eq for a reason!
For example this comparison `1.0 + 2.0 == 3.0` is false for floats, even 
though it should be true!
This commit is contained in:
Luro02 2019-10-05 13:23:41 +02:00
parent 99493446eb
commit 8d1ed6372b
7 changed files with 10 additions and 12 deletions

View file

@ -79,14 +79,14 @@ impl DerefMut for Lines {
fn deref_mut(&mut self) -> &mut Self::Target { &mut self.0 } fn deref_mut(&mut self) -> &mut Self::Target { &mut self.0 }
} }
#[derive(Debug, PartialEq, Eq)] #[derive(Debug, Clone, PartialEq)]
pub enum Line { pub enum Line {
Tag(Tag), Tag(Tag),
Uri(String), Uri(String),
} }
#[allow(clippy::large_enum_variant)] #[allow(clippy::large_enum_variant)]
#[derive(Debug, Clone, PartialEq, Eq)] #[derive(Debug, Clone, PartialEq)]
pub enum Tag { pub enum Tag {
ExtM3u(tags::ExtM3u), ExtM3u(tags::ExtM3u),
ExtXVersion(tags::ExtXVersion), ExtXVersion(tags::ExtXVersion),

View file

@ -21,7 +21,7 @@ use crate::{Error, RequiredVersion};
/// Renditions SHOULD play this Rendition. /// Renditions SHOULD play this Rendition.
/// ///
/// [4.3.4.2. EXT-X-STREAM-INF]: https://tools.ietf.org/html/rfc8216#section-4.3.4.2 /// [4.3.4.2. EXT-X-STREAM-INF]: https://tools.ietf.org/html/rfc8216#section-4.3.4.2
#[derive(PartialOrd, Debug, Clone, PartialEq, Eq)] #[derive(PartialOrd, Debug, Clone, PartialEq)]
pub struct ExtXStreamInf { pub struct ExtXStreamInf {
uri: String, uri: String,
frame_rate: Option<DecimalFloatingPoint>, frame_rate: Option<DecimalFloatingPoint>,

View file

@ -9,7 +9,7 @@ use crate::{Error, RequiredVersion};
/// [4.3.5.2. EXT-X-START] /// [4.3.5.2. EXT-X-START]
/// ///
/// [4.3.5.2. EXT-X-START]: https://tools.ietf.org/html/rfc8216#section-4.3.5.2 /// [4.3.5.2. EXT-X-START]: https://tools.ietf.org/html/rfc8216#section-4.3.5.2
#[derive(PartialOrd, Debug, Clone, Copy, PartialEq, Eq)] #[derive(PartialOrd, Debug, Clone, Copy, PartialEq)]
pub struct ExtXStart { pub struct ExtXStart {
time_offset: SignedDecimalFloatingPoint, time_offset: SignedDecimalFloatingPoint,
precise: bool, precise: bool,

View file

@ -35,8 +35,6 @@ impl DecimalFloatingPoint {
pub const fn as_f64(self) -> f64 { self.0 } pub const fn as_f64(self) -> f64 { self.0 }
} }
impl Eq for DecimalFloatingPoint {}
// this trait is implemented manually, so it doesn't construct a // this trait is implemented manually, so it doesn't construct a
// [`DecimalFloatingPoint`], with a negative value. // [`DecimalFloatingPoint`], with a negative value.
impl FromStr for DecimalFloatingPoint { impl FromStr for DecimalFloatingPoint {

View file

@ -31,6 +31,7 @@ impl fmt::Display for KeyFormat {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "{}", quote("identity")) } fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "{}", quote("identity")) }
} }
/// This tag requires [`ProtocolVersion::V5`].
impl RequiredVersion for KeyFormat { impl RequiredVersion for KeyFormat {
fn required_version(&self) -> ProtocolVersion { ProtocolVersion::V5 } fn required_version(&self) -> ProtocolVersion { ProtocolVersion::V5 }
} }

View file

@ -15,10 +15,6 @@ use crate::RequiredVersion;
#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)] #[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
pub struct KeyFormatVersions(Vec<usize>); pub struct KeyFormatVersions(Vec<usize>);
impl Default for KeyFormatVersions {
fn default() -> Self { Self(vec![1]) }
}
impl KeyFormatVersions { impl KeyFormatVersions {
/// Makes a new [`KeyFormatVersions`]. /// Makes a new [`KeyFormatVersions`].
pub fn new() -> Self { Self::default() } pub fn new() -> Self { Self::default() }
@ -37,6 +33,10 @@ impl KeyFormatVersions {
pub fn is_default(&self) -> bool { self.0 == vec![1] && self.0.len() == 1 || self.0.is_empty() } pub fn is_default(&self) -> bool { self.0 == vec![1] && self.0.len() == 1 || self.0.is_empty() }
} }
impl Default for KeyFormatVersions {
fn default() -> Self { Self(vec![1]) }
}
impl Deref for KeyFormatVersions { impl Deref for KeyFormatVersions {
type Target = Vec<usize>; type Target = Vec<usize>;
@ -47,6 +47,7 @@ impl DerefMut for KeyFormatVersions {
fn deref_mut(&mut self) -> &mut Self::Target { &mut self.0 } fn deref_mut(&mut self) -> &mut Self::Target { &mut self.0 }
} }
/// This tag requires [`ProtocolVersion::V5`].
impl RequiredVersion for KeyFormatVersions { impl RequiredVersion for KeyFormatVersions {
fn required_version(&self) -> ProtocolVersion { ProtocolVersion::V5 } fn required_version(&self) -> ProtocolVersion { ProtocolVersion::V5 }
} }

View file

@ -33,8 +33,6 @@ impl Deref for SignedDecimalFloatingPoint {
fn deref(&self) -> &Self::Target { &self.0 } fn deref(&self) -> &Self::Target { &self.0 }
} }
impl Eq for SignedDecimalFloatingPoint {}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;