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
39
40
41
42
43
44
45
46
use std::path::PathBuf;

pub fn root_dir() -> PathBuf {
    ["."].iter().collect()
}

pub fn output_dir() -> PathBuf {
    root_dir().join("output")
}

pub fn src_dir() -> PathBuf {
    root_dir().join("src")
}

pub fn assets_dir() -> PathBuf {
    src_dir().join("assets")
}

pub fn page_path(page : usize, page_name : Option<&str>) -> PathBuf {
    let name = match page_name {
        Some(name) => name,
        None => "page"
    };

    let name = format!("{}-{}", name, page);
    let mut file_name = output_dir().join(name);
    file_name.set_extension("png");
    file_name
}

pub fn letters_path() -> PathBuf {
    root_dir().join("letters")
}

pub fn dic_path(dic_name: &Option<&str>) -> PathBuf {
    match dic_name {
        Some(name) => letters_path().join(name),
        None => letters_path().join("default")
    }
}

pub fn letter_path(letter_name : String, dic_name: &Option<&str>) -> PathBuf {
    let mut path = dic_path(dic_name).join(letter_name);
    path.set_extension("png");
    path
}