Module subtp::vtt

source ·
Expand description

A parser for the WebVTT (.vtt) format provided by subtp::vtt::WebVtt.

§Example

use subtp::vtt::WebVtt;
use subtp::vtt::VttCue;
use subtp::vtt::VttTimings;
use subtp::vtt::VttTimestamp;

let text = r#"WEBVTT

00:00:01.000 --> 00:00:04.000
- Never drink liquid nitrogen.

00:00:05.000 --> 00:00:09.000
- It will perforate your stomach.
- You could die.
"#;

let vtt = WebVtt::parse(text).unwrap();

assert_eq!(
    vtt,
    WebVtt {
        blocks: vec![
            VttCue {
                timings: VttTimings {
                    start: VttTimestamp {
                        seconds: 1,
                        ..Default::default()
                    },
                    end: VttTimestamp {
                        seconds: 4,
                        ..Default::default()
                    },
                },
                payload: vec!["- Never drink liquid nitrogen.".to_string()],
                ..Default::default()
            }
            .into(),
            VttCue {
                timings: VttTimings {
                    start: VttTimestamp {
                        seconds: 5,
                        ..Default::default()
                    },
                    end: VttTimestamp {
                        seconds: 9,
                        ..Default::default()
                    },
                },
                payload: vec![
                    "- It will perforate your stomach.".to_string(),
                    "- You could die.".to_string(),
                ],
                ..Default::default()
            }
            .into(),
        ],
        ..Default::default()
    }
);

let rendered = vtt.render();

assert_eq!(rendered, text);

Structs§

Enums§

Type Aliases§