2 unstable releases

0.2.0 May 28, 2020
0.1.0 May 21, 2020

#25 in #playlist

MIT/Apache

92KB
895 lines

mpls

Crates.io

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
~15K SLoC