bindgen-jni 0.0.1

Renamed to jni-bindgen. Code generator for binding to JVM APIs from Rust
Documentation
use std::fmt::{Display, Formatter, Result};

/// [Java SE 7 § 4.1](https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.1):  ClassFile::major_version.
/// See also [Wikipedia](https://en.wikipedia.org/wiki/Java_class_file#General_layout) which lists versions.
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialOrd, Ord, PartialEq, Eq, Hash)]
pub struct MajorVersion(u16);

#[allow(non_upper_case_globals)]
impl MajorVersion {
    pub const Unknown : MajorVersion = MajorVersion(0);

    pub const JDK_1_1 : MajorVersion = MajorVersion(0x2D);
    pub const JDK_1_2 : MajorVersion = MajorVersion(0x2E);
    pub const JDK_1_3 : MajorVersion = MajorVersion(0x2F);
    pub const JDK_1_4 : MajorVersion = MajorVersion(0x30);

    pub const JavaSE_5_0 : MajorVersion = MajorVersion(0x31);
    pub const JavaSE_6_0 : MajorVersion = MajorVersion(0x32);
    pub const JavaSE_7   : MajorVersion = MajorVersion(0x33);
    pub const JavaSE_8   : MajorVersion = MajorVersion(0x34);
    pub const JavaSE_9   : MajorVersion = MajorVersion(0x35);
    pub const JavaSE_10  : MajorVersion = MajorVersion(0x36);
    pub const JavaSE_11  : MajorVersion = MajorVersion(0x37);
    pub const JavaSE_12  : MajorVersion = MajorVersion(0x38);
    pub const JavaSE_13  : MajorVersion = MajorVersion(0x39);
    pub const JavaSE_14  : MajorVersion = MajorVersion(0x3A);
}

impl Default for MajorVersion {
    fn default() -> Self { Self::JDK_1_1 }
}

impl Display for MajorVersion {
    fn fmt(&self, f: &mut Formatter) -> Result {
        self.0.fmt(f)
    }
}

impl From<u16> for MajorVersion {
    fn from(value: u16) -> Self {
        Self(value)
    }
}