pub mod apis; pub mod commands; pub mod config; pub mod db; pub mod error; pub mod files; pub mod cache; use std::{fmt::Display, path::Path}; pub use apis::*; pub use commands::*; use error::{ErrorType, MLError, MLE}; #[derive(Debug, Clone, PartialEq, Eq)] pub enum Modloader { Fabric, Forge, } impl Modloader { pub fn from(string: &str) -> MLE { match string { "forge" => Ok(Modloader::Forge), "fabric" => Ok(Modloader::Fabric), _ => Err(MLError::new(ErrorType::ArgumentError, "UNKNOWN_MODLOADER")), } } } impl Display for Modloader { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { Modloader::Fabric => write!(f, "fabric"), Modloader::Forge => write!(f, "forge"), } } } pub fn devdir(path: &str) -> String { let p = Path::new(path); let dev = std::env::var("DEV"); let lvl = match dev { Ok(dev) => dev.parse::().unwrap(), Err(..) => 0, }; if lvl >= 1 { format!("./dev/{}", p.file_name().unwrap().to_str().unwrap()) } else { String::from(path) } }