pub const VERSION_LETTER: &str = "v-pocket-R1";
pub const VERSION_DATE: &str = "04012025";
pub const VERSION_STRING: &str = "Pocket v-pocket-R1 (03172025 - Core Implementations)";
pub const COMPATIBILITY: Option<&str> = Some("");
pub const AUTHOR: &str = "frgmt0 (j)";
pub fn get_version() -> Version {
    Version {
        letter: VERSION_LETTER,
        date: VERSION_DATE,
        semver: env!("CARGO_PKG_VERSION"),
        name: "Core Implementations",
        compatibility: COMPATIBILITY,
        stability: Stability::Beta,
        author: AUTHOR,
    }
}
pub enum Stability {
        Alpha,
    
        Beta,
    
        Candidate,
    
        Release,
}
impl std::fmt::Display for Stability {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        match self {
            Stability::Alpha => write!(f, "Alpha"),
            Stability::Beta => write!(f, "Beta"),
            Stability::Candidate => write!(f, "Candidate"),
            Stability::Release => write!(f, "Release"),
        }
    }
}
pub struct Version {
        pub letter: &'static str,
    
        pub date: &'static str,
    
        pub semver: &'static str,
    
        pub name: &'static str,
    
        pub compatibility: Option<&'static str>,
    
        pub stability: Stability,
        pub author: &'static str,
}
impl std::fmt::Display for Version {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        write!(f, "Built by {}\n\n", self.author)?;
        write!(f, "{}", self.letter)?;
        
        if let Some(compat) = self.compatibility {
            write!(f, " - {}", compat)?;
        }
        
        write!(f, " ({})", self.name)?;
        
        Ok(())
    }
}