mirror of
https://github.com/sile/hls_m3u8.git
synced 2024-11-26 09:00:58 +00:00
minor improvements
This commit is contained in:
parent
6ef8182f2c
commit
6333a80507
10 changed files with 26 additions and 23 deletions
|
@ -18,8 +18,6 @@
|
||||||
)]
|
)]
|
||||||
//! [HLS] m3u8 parser/generator.
|
//! [HLS] m3u8 parser/generator.
|
||||||
//!
|
//!
|
||||||
//! [HLS]: https://tools.ietf.org/html/rfc8216
|
|
||||||
//!
|
|
||||||
//! # Examples
|
//! # Examples
|
||||||
//!
|
//!
|
||||||
//! ```
|
//! ```
|
||||||
|
@ -38,6 +36,8 @@
|
||||||
//!
|
//!
|
||||||
//! assert!(m3u8.parse::<MediaPlaylist>().is_ok());
|
//! assert!(m3u8.parse::<MediaPlaylist>().is_ok());
|
||||||
//! ```
|
//! ```
|
||||||
|
//!
|
||||||
|
//! [HLS]: https://tools.ietf.org/html/rfc8216
|
||||||
|
|
||||||
pub use error::Error;
|
pub use error::Error;
|
||||||
pub use master_playlist::MasterPlaylist;
|
pub use master_playlist::MasterPlaylist;
|
||||||
|
|
|
@ -42,6 +42,8 @@ pub struct MediaSegment {
|
||||||
|
|
||||||
impl MediaSegment {
|
impl MediaSegment {
|
||||||
/// Returns a builder for a [`MediaSegment`].
|
/// Returns a builder for a [`MediaSegment`].
|
||||||
|
#[must_use]
|
||||||
|
#[inline]
|
||||||
pub fn builder() -> MediaSegmentBuilder { MediaSegmentBuilder::default() }
|
pub fn builder() -> MediaSegmentBuilder { MediaSegmentBuilder::default() }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -220,14 +220,8 @@ impl ExtXMedia {
|
||||||
|
|
||||||
impl RequiredVersion for ExtXMedia {
|
impl RequiredVersion for ExtXMedia {
|
||||||
fn required_version(&self) -> ProtocolVersion {
|
fn required_version(&self) -> ProtocolVersion {
|
||||||
match self.instream_id {
|
self.instream_id
|
||||||
None
|
.map_or(ProtocolVersion::V1, |i| i.required_version())
|
||||||
| Some(InStreamId::Cc1)
|
|
||||||
| Some(InStreamId::Cc2)
|
|
||||||
| Some(InStreamId::Cc3)
|
|
||||||
| Some(InStreamId::Cc4) => ProtocolVersion::V1,
|
|
||||||
_ => ProtocolVersion::V7,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -192,7 +192,7 @@ mod test {
|
||||||
// EncryptionMethod is None!
|
// EncryptionMethod is None!
|
||||||
#[test]
|
#[test]
|
||||||
#[should_panic = "the encryption method should never be `None`"]
|
#[should_panic = "the encryption method should never be `None`"]
|
||||||
fn test_new_panic() { ExtXSessionKey::new(ExtXKey::new(EncryptionMethod::None, "")); }
|
fn test_new_panic() { let _ = ExtXSessionKey::new(ExtXKey::new(EncryptionMethod::None, "")); }
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_deref() {
|
fn test_deref() {
|
||||||
|
|
|
@ -178,6 +178,7 @@ impl ExtXKey {
|
||||||
/// "#EXT-X-KEY:METHOD=AES-128,URI=\"https://www.example.com/\""
|
/// "#EXT-X-KEY:METHOD=AES-128,URI=\"https://www.example.com/\""
|
||||||
/// );
|
/// );
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
pub fn new<T: Into<String>>(method: EncryptionMethod, uri: T) -> Self {
|
pub fn new<T: Into<String>>(method: EncryptionMethod, uri: T) -> Self {
|
||||||
Self {
|
Self {
|
||||||
method,
|
method,
|
||||||
|
@ -207,6 +208,7 @@ impl ExtXKey {
|
||||||
/// .build()?;
|
/// .build()?;
|
||||||
/// # Ok::<(), Box<dyn ::std::error::Error>>(())
|
/// # Ok::<(), Box<dyn ::std::error::Error>>(())
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
pub fn builder() -> ExtXKeyBuilder { ExtXKeyBuilder::default() }
|
pub fn builder() -> ExtXKeyBuilder { ExtXKeyBuilder::default() }
|
||||||
|
|
||||||
/// Makes a new [`ExtXKey`] tag without a decryption key.
|
/// Makes a new [`ExtXKey`] tag without a decryption key.
|
||||||
|
@ -219,6 +221,7 @@ impl ExtXKey {
|
||||||
///
|
///
|
||||||
/// assert_eq!(key.to_string(), "#EXT-X-KEY:METHOD=NONE");
|
/// assert_eq!(key.to_string(), "#EXT-X-KEY:METHOD=NONE");
|
||||||
/// ```
|
/// ```
|
||||||
|
#[must_use]
|
||||||
pub const fn empty() -> Self {
|
pub const fn empty() -> Self {
|
||||||
Self {
|
Self {
|
||||||
method: EncryptionMethod::None,
|
method: EncryptionMethod::None,
|
||||||
|
@ -244,6 +247,7 @@ impl ExtXKey {
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// [`None`]: EncryptionMethod::None
|
/// [`None`]: EncryptionMethod::None
|
||||||
|
#[must_use]
|
||||||
pub fn is_empty(&self) -> bool { self.method() == EncryptionMethod::None }
|
pub fn is_empty(&self) -> bool { self.method() == EncryptionMethod::None }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -145,7 +145,8 @@ impl FromStr for ExtXMap {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let uri = uri.ok_or_else(|| Error::missing_value("EXT-X-URI"))?;
|
let uri = uri.ok_or_else(|| Error::missing_value("URI"))?;
|
||||||
|
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
uri,
|
uri,
|
||||||
range,
|
range,
|
||||||
|
|
|
@ -22,7 +22,9 @@ use crate::Error;
|
||||||
///
|
///
|
||||||
/// [RFC6381]: https://tools.ietf.org/html/rfc6381
|
/// [RFC6381]: https://tools.ietf.org/html/rfc6381
|
||||||
/// [`VariantStream`]: crate::tags::VariantStream
|
/// [`VariantStream`]: crate::tags::VariantStream
|
||||||
#[derive(AsMut, AsRef, Deref, DerefMut, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
#[derive(
|
||||||
|
AsMut, AsRef, Deref, DerefMut, Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default,
|
||||||
|
)]
|
||||||
pub struct Codecs {
|
pub struct Codecs {
|
||||||
list: Vec<String>,
|
list: Vec<String>,
|
||||||
}
|
}
|
||||||
|
@ -38,7 +40,7 @@ impl Codecs {
|
||||||
/// ```
|
/// ```
|
||||||
#[inline]
|
#[inline]
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub fn new() -> Self { Self { list: Vec::new() } }
|
pub const fn new() -> Self { Self { list: Vec::new() } }
|
||||||
}
|
}
|
||||||
|
|
||||||
impl fmt::Display for Codecs {
|
impl fmt::Display for Codecs {
|
||||||
|
|
|
@ -22,7 +22,7 @@ pub enum EncryptionMethod {
|
||||||
/// # let media_sequence_number = 5;
|
/// # let media_sequence_number = 5;
|
||||||
/// # assert_eq!(
|
/// # assert_eq!(
|
||||||
/// format!("0x{:032x}", media_sequence_number)
|
/// format!("0x{:032x}", media_sequence_number)
|
||||||
/// # , "00000000000000000000000000000005".to_string());
|
/// # , "0x00000000000000000000000000000005".to_string());
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// [`MediaSegment`]: crate::MediaSegment
|
/// [`MediaSegment`]: crate::MediaSegment
|
||||||
|
|
|
@ -277,15 +277,15 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[should_panic = "float must be finite: `inf`"]
|
#[should_panic = "float must be finite: `inf`"]
|
||||||
fn test_new_infinite() { Float::new(::core::f32::INFINITY); }
|
fn test_new_infinite() { let _ = Float::new(::core::f32::INFINITY); }
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[should_panic = "float must be finite: `-inf`"]
|
#[should_panic = "float must be finite: `-inf`"]
|
||||||
fn test_new_neg_infinite() { Float::new(::core::f32::NEG_INFINITY); }
|
fn test_new_neg_infinite() { let _ = Float::new(::core::f32::NEG_INFINITY); }
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[should_panic = "float must not be `NaN`"]
|
#[should_panic = "float must not be `NaN`"]
|
||||||
fn test_new_nan() { Float::new(::core::f32::NAN); }
|
fn test_new_nan() { let _ = Float::new(::core::f32::NAN); }
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_as_f32() {
|
fn test_as_f32() {
|
||||||
|
|
|
@ -266,23 +266,23 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[should_panic = "float must be positive: `-1.1`"]
|
#[should_panic = "float must be positive: `-1.1`"]
|
||||||
fn test_new_negative() { UFloat::new(-1.1); }
|
fn test_new_negative() { let _ = UFloat::new(-1.1); }
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[should_panic = "float must be positive: `0`"]
|
#[should_panic = "float must be positive: `0`"]
|
||||||
fn test_new_negative_zero() { UFloat::new(-0.0); }
|
fn test_new_negative_zero() { let _ = UFloat::new(-0.0); }
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[should_panic = "float must be finite: `inf`"]
|
#[should_panic = "float must be finite: `inf`"]
|
||||||
fn test_new_infinite() { UFloat::new(::core::f32::INFINITY); }
|
fn test_new_infinite() { let _ = UFloat::new(::core::f32::INFINITY); }
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[should_panic = "float must be finite: `-inf`"]
|
#[should_panic = "float must be finite: `-inf`"]
|
||||||
fn test_new_neg_infinite() { UFloat::new(::core::f32::NEG_INFINITY); }
|
fn test_new_neg_infinite() { let _ = UFloat::new(::core::f32::NEG_INFINITY); }
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[should_panic = "float must not be `NaN`"]
|
#[should_panic = "float must not be `NaN`"]
|
||||||
fn test_new_nan() { UFloat::new(::core::f32::NAN); }
|
fn test_new_nan() { let _ = UFloat::new(::core::f32::NAN); }
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_as_f32() {
|
fn test_as_f32() {
|
||||||
|
|
Loading…
Reference in a new issue