diff --git a/src/lib.rs b/src/lib.rs index 5b92abf..3b7e3c6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -62,6 +62,27 @@ pub use master_playlist::MasterPlaylist; pub use media_playlist::MediaPlaylist; pub use media_segment::MediaSegment; +pub mod builder { + pub use crate::master_playlist::MasterPlaylistBuilder; + pub use crate::media_playlist::MediaPlaylistBuilder; + pub use crate::media_segment::MediaSegmentBuilder; + + 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 + } + + pub mod types { + pub use crate::types::decryption_key::DecryptionKeyBuilder; + pub use crate::types::stream_data::StreamDataBuilder; + } +} pub mod tags; pub mod types; diff --git a/src/tags/basic/mod.rs b/src/tags/basic/mod.rs index 642560b..98e87f2 100644 --- a/src/tags/basic/mod.rs +++ b/src/tags/basic/mod.rs @@ -1,5 +1,5 @@ -mod m3u; -mod version; +pub(crate) mod m3u; +pub(crate) mod version; pub(crate) use m3u::*; pub use version::*; diff --git a/src/tags/master_playlist/mod.rs b/src/tags/master_playlist/mod.rs index b95f91c..d2005d0 100644 --- a/src/tags/master_playlist/mod.rs +++ b/src/tags/master_playlist/mod.rs @@ -1,9 +1,9 @@ -mod media; -mod session_data; -mod session_key; -mod variant_stream; +pub(crate) mod media; +pub(crate) mod session_data; +pub(crate) mod session_key; +pub(crate) mod variant_stream; -pub use media::*; -pub use session_data::*; +pub use media::ExtXMedia; +pub use session_data::{ExtXSessionData, SessionData}; pub use session_key::*; pub use variant_stream::*; diff --git a/src/tags/mod.rs b/src/tags/mod.rs index ae45d74..0dcda36 100644 --- a/src/tags/mod.rs +++ b/src/tags/mod.rs @@ -2,11 +2,11 @@ //! //! [4.3. Playlist Tags]: https://tools.ietf.org/html/rfc8216#section-4.3 -mod basic; -mod master_playlist; -mod media_playlist; -mod media_segment; -mod shared; +pub(crate) mod basic; +pub(crate) mod master_playlist; +pub(crate) mod media_playlist; +pub(crate) mod media_segment; +pub(crate) mod shared; pub use basic::*; pub use master_playlist::*; diff --git a/src/types/mod.rs b/src/types/mod.rs index 9a3c299..87188d7 100644 --- a/src/types/mod.rs +++ b/src/types/mod.rs @@ -1,37 +1,41 @@ //! Miscellaneous types. -mod byte_range; -mod channels; -mod closed_captions; -mod codecs; -mod encryption_method; -mod hdcp_level; -mod in_stream_id; -mod key_format; -mod key_format_versions; -mod media_type; -mod protocol_version; -mod resolution; -mod stream_data; -mod value; +pub(crate) mod byte_range; +pub(crate) mod channels; +pub(crate) mod closed_captions; +pub(crate) mod codecs; +pub(crate) mod decryption_key; +pub(crate) mod encryption_method; +pub(crate) mod hdcp_level; +pub(crate) mod in_stream_id; +pub(crate) mod initialization_vector; +pub(crate) mod key_format; +pub(crate) mod key_format_versions; +pub(crate) mod media_type; pub(crate) mod playlist_type; +pub(crate) mod protocol_version; +pub(crate) mod resolution; +pub(crate) mod stream_data; +pub(crate) mod value; -mod float; -mod ufloat; +pub(crate) mod float; +pub(crate) mod ufloat; pub use byte_range::*; pub use channels::*; pub use closed_captions::*; pub use codecs::*; +pub use decryption_key::DecryptionKey; pub use encryption_method::*; pub use hdcp_level::*; pub use in_stream_id::*; +pub use initialization_vector::*; pub use key_format::*; pub use key_format_versions::*; pub use media_type::*; pub use playlist_type::*; pub use protocol_version::*; pub use resolution::*; -pub use stream_data::*; +pub use stream_data::StreamData; pub use value::*; pub use float::Float;