1
0
Fork 0
mirror of https://github.com/sile/hls_m3u8.git synced 2024-05-23 02:38:30 +00:00
hls_m3u8/src/lib.rs

106 lines
2.5 KiB
Rust
Raw Normal View History

2020-04-09 06:15:58 +00:00
#![doc(html_root_url = "https://docs.rs/hls_m3u8/0.2.1")]
2019-09-22 18:33:40 +00:00
#![forbid(unsafe_code)]
2020-04-09 06:43:13 +00:00
#![warn(rust_2018_idioms)]
2019-09-08 10:23:33 +00:00
#![warn(
2020-01-23 16:57:57 +00:00
clippy::pedantic, //
2019-09-08 10:23:33 +00:00
clippy::nursery,
2020-03-08 09:00:39 +00:00
clippy::cargo,
clippy::inline_always,
2019-09-08 10:23:33 +00:00
)]
2020-02-02 13:33:57 +00:00
#![allow(
clippy::multiple_crate_versions,
clippy::module_name_repetitions,
2020-03-08 09:00:39 +00:00
clippy::default_trait_access,
clippy::unnecessary_operation // temporary until derive-builder uses #[allow(clippy::all)]
)]
#![warn(
clippy::clone_on_ref_ptr,
clippy::decimal_literal_representation,
clippy::get_unwrap,
clippy::option_expect_used,
clippy::unneeded_field_pattern,
clippy::wrong_pub_self_convention
)]
// those should not be present in production code:
#![deny(
clippy::print_stdout,
clippy::todo,
clippy::unimplemented,
clippy::dbg_macro,
clippy::use_debug
2020-02-02 13:33:57 +00:00
)]
2019-09-22 18:33:40 +00:00
#![warn(
missing_docs,
missing_copy_implementations,
missing_debug_implementations,
2020-02-10 12:21:48 +00:00
trivial_casts,
2019-09-22 18:33:40 +00:00
trivial_numeric_casts
)]
2018-02-14 03:00:41 +00:00
//! [HLS] m3u8 parser/generator.
//!
//! # Examples
//!
2018-02-14 19:55:28 +00:00
//! ```
//! use hls_m3u8::MediaPlaylist;
//!
//! let m3u8 = "#EXTM3U
//! #EXT-X-TARGETDURATION:10
//! #EXT-X-VERSION:3
//! #EXTINF:9.009,
//! http://media.example.com/first.ts
//! #EXTINF:9.009,
//! http://media.example.com/second.ts
//! #EXTINF:3.003,
//! http://media.example.com/third.ts
//! #EXT-X-ENDLIST";
//!
//! assert!(m3u8.parse::<MediaPlaylist>().is_ok());
//! ```
2020-02-24 15:45:10 +00:00
//!
//! [HLS]: https://tools.ietf.org/html/rfc8216
2018-02-11 06:10:52 +00:00
2019-10-06 14:39:18 +00:00
pub use error::Error;
pub use master_playlist::MasterPlaylist;
pub use media_playlist::MediaPlaylist;
pub use media_segment::MediaSegment;
2018-02-11 06:10:52 +00:00
2020-03-28 09:51:19 +00:00
/// Builder structs
2020-03-25 13:10:59 +00:00
pub mod builder {
pub use crate::master_playlist::MasterPlaylistBuilder;
pub use crate::media_playlist::MediaPlaylistBuilder;
pub use crate::media_segment::MediaSegmentBuilder;
2020-03-28 09:51:19 +00:00
/// Builder structs for tags
2020-03-25 13:10:59 +00:00
pub mod tags {
// master playlist
pub use crate::tags::master_playlist::media::ExtXMediaBuilder;
pub use crate::tags::master_playlist::session_data::ExtXSessionDataBuilder;
// media segment
pub use crate::tags::media_segment::date_range::ExtXDateRangeBuilder;
// media playlist
}
2020-03-28 09:51:19 +00:00
/// Builder structs for types
2020-03-25 13:10:59 +00:00
pub mod types {
pub use crate::types::decryption_key::DecryptionKeyBuilder;
pub use crate::types::stream_data::StreamDataBuilder;
}
}
2018-02-14 19:51:44 +00:00
pub mod tags;
2018-02-14 03:16:36 +00:00
pub mod types;
2018-02-11 06:10:52 +00:00
2019-10-05 14:24:48 +00:00
#[macro_use]
mod utils;
2018-02-14 03:00:41 +00:00
mod attribute;
2018-02-11 06:10:52 +00:00
mod error;
2018-02-14 03:00:41 +00:00
mod line;
mod master_playlist;
mod media_playlist;
mod media_segment;
2019-10-04 09:02:21 +00:00
mod traits;
2018-02-11 06:10:52 +00:00
2019-09-13 14:06:52 +00:00
pub use error::Result;
2019-10-04 09:02:21 +00:00
pub use traits::*;