glacier_texture/
lib.rs

1use std::str::FromStr;
2
3pub mod texture_map;
4
5#[cfg(feature = "rpkg")]
6pub mod rpkg;
7pub mod convert;
8pub mod pack;
9pub mod enums;
10pub mod mipblock;
11pub mod atlas;
12#[cfg(feature = "image")]
13pub mod image;
14
15#[derive(Debug, PartialEq, Clone, Copy)]
16pub enum WoaVersion {
17    HM2016,
18    HM2,
19    HM3,
20}
21
22impl FromStr for WoaVersion {
23    type Err = String;
24    fn from_str(s: &str) -> Result<Self, Self::Err> {
25        match s {
26            "1" | "H1" | "HM1" | "HM2016" | "H2016" => Ok(WoaVersion::HM2016),
27            "2" | "H2" | "HM2" | "HM2018" | "H2018" => Ok(WoaVersion::HM2),
28            "3" | "H3" | "HM3" | "HM2020" | "H2020" => Ok(WoaVersion::HM3),
29            _ => Err(format!("Invalid value for WoaVersion: {s}")),
30        }
31    }
32}
33
34pub trait Version {
35    fn get_version() -> WoaVersion;
36}