siteslib/enums/
page_type.rs

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
30
31
32
33
34
35
36
37
38
use serde::{Deserialize, Serialize};
use strum::IntoEnumIterator;
use strum_macros::EnumIter;

#[derive(strum_macros::Display, Serialize, Deserialize, Debug, Clone, EnumIter)]
pub enum PageType {
    GalleryView,
    ArticleView,
    Folder,
    Other,
    MainInfo,
    Undefined,
}

impl PageType {
    // pub fn default() -> PageType {
    //     PageType::Undefined
    // }
    // pub fn from(value: &str) -> PageType {
    //     match value {
    //         "GalleryView" => PageType::GalleryView,
    //         "ArticleView" => PageType::ArticleView,
    //         "Folder" => PageType::Folder,
    //         "Other" => PageType::Other,
    //         "MainInfo" => PageType::MainInfo,
    //         "Undefined" => PageType::Undefined,
    //         _ => PageType::Undefined,
    //     }
    // }

    pub fn vector() -> Vec<PageType> {
        let mut types: Vec<PageType> = Vec::new();
        for page_type in PageType::iter() {
            types.push(page_type)
        }
        types
    }
}