1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#![allow(missing_docs)]

use serde::{Deserialize, Serialize};

use crate::tag::Tag;

/// Dynasty reader's tag status.
#[derive(Debug, Deserialize, Serialize, PartialEq, Eq)]
pub enum TagStatus {
    Abandoned,
    Cancelled,
    Completed,
    Licensed,
    Ongoing,
    Unknown(String),
}

impl TagStatus {
    pub(crate) fn from_tag(tag: Tag) -> TagStatus {
        match tag.title.as_str() {
            "Abandoned" => TagStatus::Abandoned,
            "Cancelled" => TagStatus::Cancelled,
            "Completed" => TagStatus::Completed,
            "Licensed" => TagStatus::Licensed,
            "Ongoing" => TagStatus::Ongoing,
            unknown => TagStatus::Unknown(unknown.to_string()),
        }
    }
}