pub mod apis; pub mod config; pub mod commands; pub mod input; pub mod db; pub mod error; pub mod files; use std::{path::Path, fmt::Display}; pub use apis::*; pub use commands::*; use error::{MLE, ErrorType, MLError}; #[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) } }