2 unstable releases
0.2.0 | May 28, 2020 |
---|---|
0.1.0 | May 21, 2020 |
#35 in #playlist
92KB
895 lines
mpls
A movie playlist file (MPLS) parser. Written in Rust using the nom parser combinator library.
Dual-licensed under MIT and Apache 2.0.
Example
use std::fs::File;
use std::io::Read;
use mpls::Mpls;
fn main() -> std::io::Result<()> {
// open the playlist file
let mut file = File::open("00800.mpls")?;
// parse the play list
let mpls = Mpls::from(&file).expect("failed to parse MPLS file.");
// extract the play list's angles
let angles = mpls.angles();
// extract the segments
for angle in angles {
let segment_numbers: Vec<i32> = angle
.segments()
.iter()
.map(|s| s.file_name.parse::<i32>().unwrap())
.collect();
println!("angle {}: {:?}", angle, segment_numbers);
}
Ok(())
}
Installation
Add this to your Cargo.toml
:
[dependencies]
mpls = "0.2.0"
Documentation
See the reference docs on crates.io.
Dependencies
~1MB
~17K SLoC