jni_bindgen_reflection/
version.rs

1use std::fmt::{Display, Formatter, Result};
2
3/// [Java SE 7 § 4.1](https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.1):  ClassFile::major_version.
4/// See also [Wikipedia](https://en.wikipedia.org/wiki/Java_class_file#General_layout) which lists versions.
5#[repr(transparent)]
6#[derive(Clone, Copy, Debug, PartialOrd, Ord, PartialEq, Eq, Hash)]
7pub struct Major(pub(crate) u16);
8
9#[allow(non_upper_case_globals)]
10#[allow(dead_code)]
11impl Major {
12    pub const Unknown : Major = Major(0);
13
14    pub const JDK_1_1 : Major = Major(0x2D);
15    pub const JDK_1_2 : Major = Major(0x2E);
16    pub const JDK_1_3 : Major = Major(0x2F);
17    pub const JDK_1_4 : Major = Major(0x30);
18
19    pub const JavaSE_5_0 : Major = Major(0x31);
20    pub const JavaSE_6_0 : Major = Major(0x32);
21    pub const JavaSE_7   : Major = Major(0x33);
22    pub const JavaSE_8   : Major = Major(0x34);
23    pub const JavaSE_9   : Major = Major(0x35);
24    pub const JavaSE_10  : Major = Major(0x36);
25    pub const JavaSE_11  : Major = Major(0x37);
26    pub const JavaSE_12  : Major = Major(0x38);
27    pub const JavaSE_13  : Major = Major(0x39);
28    pub const JavaSE_14  : Major = Major(0x3A);
29}
30
31impl Default for Major {
32    fn default() -> Self { Self::JDK_1_1 }
33}
34
35impl Display for Major {
36    fn fmt(&self, f: &mut Formatter) -> Result {
37        self.0.fmt(f)
38    }
39}