youtube_dl_parser/state/parsed_state/
youtube_state.rs

1/// Occurs when an youtube output is produced
2pub enum YoutubeState {
3    Initiating,
4    ParseError(String),
5}
6
7impl YoutubeState {
8    pub fn parse<'a>(mut split: impl DoubleEndedIterator<Item = &'a str> + Send) -> YoutubeState {
9        let Some(skipped)= split.next() else {return YoutubeState::ParseError("Unable to parse youtube state".to_owned())};
10        let remaining = split.collect::<Vec<&str>>().join(" ");
11        if remaining == "Downloading webpage" {
12            YoutubeState::Initiating
13        } else {
14            YoutubeState::ParseError(format!("{skipped} {remaining}"))
15        }
16    }
17}