1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
5pub struct ReferenceTime {
6 pub year: u16,
7 pub month: u8,
8 pub day: u8,
9 pub hour: u8,
10 pub minute: u8,
11 pub second: u8,
12}
13
14#[derive(Debug, Clone, Copy, PartialEq, Eq)]
16pub struct Parameter {
17 pub discipline: Option<u8>,
18 pub category: Option<u8>,
19 pub table_version: Option<u8>,
20 pub number: u8,
21 pub short_name: &'static str,
22 pub description: &'static str,
23}
24
25impl Parameter {
26 pub fn new_grib1(
27 table_version: u8,
28 number: u8,
29 short_name: &'static str,
30 description: &'static str,
31 ) -> Self {
32 Self {
33 discipline: None,
34 category: None,
35 table_version: Some(table_version),
36 number,
37 short_name,
38 description,
39 }
40 }
41
42 pub fn new_grib2(
43 discipline: u8,
44 category: u8,
45 number: u8,
46 short_name: &'static str,
47 description: &'static str,
48 ) -> Self {
49 Self {
50 discipline: Some(discipline),
51 category: Some(category),
52 table_version: None,
53 number,
54 short_name,
55 description,
56 }
57 }
58}