mirror of
https://github.com/rutgersc/m3u8-rs.git
synced 2025-03-29 08:35:27 +00:00
Merge pull request #37 from sdroege/is-master-playlist-early-return
Don't bother parsing as a playlist or detecting if it's a master/medi…
This commit is contained in:
commit
836ef1caaf
1 changed files with 3 additions and 0 deletions
|
@ -42,6 +42,8 @@ use std::string;
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
pub fn parse_playlist(input: &[u8]) -> IResult<&[u8], Playlist> {
|
pub fn parse_playlist(input: &[u8]) -> IResult<&[u8], Playlist> {
|
||||||
|
m3u_tag(input)?;
|
||||||
|
|
||||||
match is_master_playlist(input) {
|
match is_master_playlist(input) {
|
||||||
true => map(parse_master_playlist, Playlist::MasterPlaylist)(input),
|
true => map(parse_master_playlist, Playlist::MasterPlaylist)(input),
|
||||||
false => map(parse_media_playlist, Playlist::MediaPlaylist)(input),
|
false => map(parse_media_playlist, Playlist::MediaPlaylist)(input),
|
||||||
|
@ -135,6 +137,7 @@ pub fn is_master_playlist(input: &[u8]) -> bool {
|
||||||
/// - Some(true, tagstring): Line contains a master playlist tag
|
/// - Some(true, tagstring): Line contains a master playlist tag
|
||||||
/// - Some(false, tagstring): Line contains a media playlist tag
|
/// - Some(false, tagstring): Line contains a media playlist tag
|
||||||
fn contains_master_tag(input: &[u8]) -> Option<(bool, String)> {
|
fn contains_master_tag(input: &[u8]) -> Option<(bool, String)> {
|
||||||
|
let (input, _) = m3u_tag(input).ok()?;
|
||||||
let mut is_master_opt = None;
|
let mut is_master_opt = None;
|
||||||
let mut current_input: &[u8] = input;
|
let mut current_input: &[u8] = input;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue