1
0
Fork 0
mirror of https://github.com/sile/hls_m3u8.git synced 2024-11-15 20:01:01 +00:00
hls_m3u8/examples/parse.rs

39 lines
1 KiB
Rust
Raw Normal View History

2018-02-13 15:25:33 +00:00
extern crate clap;
2018-02-11 06:10:52 +00:00
extern crate hls_m3u8;
#[macro_use]
extern crate trackable;
2018-02-13 15:25:33 +00:00
use clap::{App, Arg};
2018-02-14 03:00:19 +00:00
use hls_m3u8::{MasterPlaylist, MediaPlaylist};
2018-10-04 11:18:56 +00:00
use std::io::{self, Read};
2018-02-11 06:10:52 +00:00
use trackable::error::Failure;
fn main() {
2018-02-13 15:25:33 +00:00
let matches = App::new("parse")
.arg(
Arg::with_name("M3U8_TYPE")
.long("m3u8-type")
.takes_value(true)
.default_value("media")
.possible_values(&["media", "master"]),
2018-10-04 11:18:56 +00:00
).get_matches();
2018-02-11 06:10:52 +00:00
let mut m3u8 = String::new();
track_try_unwrap!(
io::stdin()
.read_to_string(&mut m3u8)
.map_err(Failure::from_error)
);
2018-02-13 15:25:33 +00:00
match matches.value_of("M3U8_TYPE").unwrap() {
"media" => {
let playlist: MediaPlaylist = track_try_unwrap!(m3u8.parse());
println!("{}", playlist);
}
2018-02-14 01:31:24 +00:00
"master" => {
let playlist: MasterPlaylist = track_try_unwrap!(m3u8.parse());
println!("{}", playlist);
}
2018-02-13 15:25:33 +00:00
_ => unreachable!(),
2018-02-11 06:10:52 +00:00
}
}