1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
//! # Altitude
//!
//! This module provides:
//!
//!   * Altitude As Above Ground Level (AGL)
//!
//!   * Altitude As Mean Sea Level (MSL)
//!
//! See below for:
//!
//!   * Altitude v. Elevation.
//!
//!   * Above Ground Level (AGL) v. Mean Sea Level (MSL)
//!
//! Examples here are about an aircraft and airport:
//!
//!   * Aircraft takeoff altitude is up to 300 metres above ground level.
//!
//!   * Aircraft cruising altitude is up to 13000 metres mean sea level.
//!
//!   * Airport tower elevation is 90 metres above ground level.
//!
//!   * Airport runway elevation is 1635 metres mean sea level.
//!
//!
//! ## Altitude As Above Ground Level (AGL)
//!
//! Example:
//!
//! ```rust
//! # use ::typeables::altitude::*;
//! let takeoff = AltitudeAsAboveGroundLevelAsMetreAsStructI32(300);
//! ```
//!
//!
//! ## Altitude As Mean Sea Level (MSL)
//!
//! Example:
//!
//! ```rust
//! # use ::typeables::altitude::*;
//! let cruising = AltitudeAsMeanSeaLevelAsMetreAsStructI32(13000);
//! ```
//!
//!
//! ## Altitude v. Elevation
//!
//! Altitude and elevation are similar concepts: they both measure the height of
//! something relative to a reference datum (such as the earth's surface).
//!
//! * Altitude typically is for the distance between a moving object (such as an
//!   aircraft) and a well-known reference datum (such as ground level or sea
//!   level). For example, an aircraft takeoff process goes up to an alititude
//!   of 300 metres above ground level (AGL) i.e. above the airport runway, and
//!   a typical aircraft cruising process goes up to an alititude of 13000
//!   metres mean sea level (MSL).
//!
//! * Elevation typically is for the tallness of a stationary object (such as a
//!   place) compared to a well-known reference point (such as ground level or
//!   seal level).  For example, an airport control tower building has an
//!   elevation of 80 metres above ground level (AGL), and an airport runway in
//!   Denver Colorado has an elevation of 1635 metres mean sea level (MSL).
//!
//!
//! ## Above Ground Level (AGL) v. Mean Sea Level (MSL)
//!
//! Altitude and elevation can use a variety of representations such as:
//!
//! * Above Ground Level (AGL). This is measured from the local ground level.
//!   For example, the Burj Khalifa skyscraper in Dubai is 828 metres tall i.e.
//!   the top is 828 metres above ground level.
//!
//! * Mean Sea Level (MSL). This is measured from a worldwide agreed-upon
//!   standard chosen based on an plausible average of the world's ocean level.

//// Altitude as Above Ground Level (AGL) as Metre

pub struct AltitudeAsAboveGroundLevelAsMetreAsStructI8(pub i8);
pub struct AltitudeAsAboveGroundLevelAsMetreAsStructI16(pub i16);
pub struct AltitudeAsAboveGroundLevelAsMetreAsStructI32(pub i32);
pub struct AltitudeAsAboveGroundLevelAsMetreAsStructI64(pub i64);
pub struct AltitudeAsAboveGroundLevelAsMetreAsStructI128(pub i128);
pub struct AltitudeAsAboveGroundLevelAsMetreAsStructISize(pub isize);
pub struct AltitudeAsAboveGroundLevelAsMetreAsStructU8(pub u8);
pub struct AltitudeAsAboveGroundLevelAsMetreAsStructU16(pub u16);
pub struct AltitudeAsAboveGroundLevelAsMetreAsStructU32(pub u32);
pub struct AltitudeAsAboveGroundLevelAsMetreAsStructU64(pub u64);
pub struct AltitudeAsAboveGroundLevelAsMetreAsStructU128(pub u128);
pub struct AltitudeAsAboveGroundLevelAsMetreAsStructUSize(pub usize);
pub struct AltitudeAsAboveGroundLevelAsMetreAsStructF32(pub f32);
pub struct AltitudeAsAboveGroundLevelAsMetreAsStructF64(pub f64);

pub type AltitudeAsAboveGroundLevelAsMetreAsTypeI8 = i8;
pub type AltitudeAsAboveGroundLevelAsMetreAsTypeI16 = i16;
pub type AltitudeAsAboveGroundLevelAsMetreAsTypeI32 = i32;
pub type AltitudeAsAboveGroundLevelAsMetreAsTypeI64 = i64;
pub type AltitudeAsAboveGroundLevelAsMetreAsTypeI128 = i128;
pub type AltitudeAsAboveGroundLevelAsMetreAsTypeISize = isize;
pub type AltitudeAsAboveGroundLevelAsMetreAsTypeU8 = u8;
pub type AltitudeAsAboveGroundLevelAsMetreAsTypeU16 = u16;
pub type AltitudeAsAboveGroundLevelAsMetreAsTypeU32 = u32;
pub type AltitudeAsAboveGroundLevelAsMetreAsTypeU64 = u64;
pub type AltitudeAsAboveGroundLevelAsMetreAsTypeU128 = u128;
pub type AltitudeAsAboveGroundLevelAsMetreAsTypeUSize = usize;
pub type AltitudeAsAboveGroundLevelAsMetreAsTypeF32 = f32;
pub type AltitudeAsAboveGroundLevelAsMetreAsTypeF64 = f64;

//// Altitude as Mean Sea Level (MSL) as Metre
pub struct AltitudeAsMeanSeaLevelAsMetreAsStructI8(pub i8);
pub struct AltitudeAsMeanSeaLevelAsMetreAsStructI16(pub i16);
pub struct AltitudeAsMeanSeaLevelAsMetreAsStructI32(pub i32);
pub struct AltitudeAsMeanSeaLevelAsMetreAsStructI64(pub i64);
pub struct AltitudeAsMeanSeaLevelAsMetreAsStructI128(pub i128);
pub struct AltitudeAsMeanSeaLevelAsMetreAsStructISize(pub isize);
pub struct AltitudeAsMeanSeaLevelAsMetreAsStructU8(pub u8);
pub struct AltitudeAsMeanSeaLevelAsMetreAsStructU16(pub u16);
pub struct AltitudeAsMeanSeaLevelAsMetreAsStructU32(pub u32);
pub struct AltitudeAsMeanSeaLevelAsMetreAsStructU64(pub u64);
pub struct AltitudeAsMeanSeaLevelAsMetreAsStructU128(pub u128);
pub struct AltitudeAsMeanSeaLevelAsMetreAsStructUSize(pub usize);
pub struct AltitudeAsMeanSeaLevelAsMetreAsStructF32(pub f32);
pub struct AltitudeAsMeanSeaLevelAsMetreAsStructF64(pub f64);

pub type AltitudeAsMeanSeaLevelAsMetreAsTypeI8 = i8;
pub type AltitudeAsMeanSeaLevelAsMetreAsTypeI16 = i16;
pub type AltitudeAsMeanSeaLevelAsMetreAsTypeI32 = i32;
pub type AltitudeAsMeanSeaLevelAsMetreAsTypeI64 = i64;
pub type AltitudeAsMeanSeaLevelAsMetreAsTypeI128 = i128;
pub type AltitudeAsMeanSeaLevelAsMetreAsTypeISize = isize;
pub type AltitudeAsMeanSeaLevelAsMetreAsTypeU8 = u8;
pub type AltitudeAsMeanSeaLevelAsMetreAsTypeU16 = u16;
pub type AltitudeAsMeanSeaLevelAsMetreAsTypeU32 = u32;
pub type AltitudeAsMeanSeaLevelAsMetreAsTypeU64 = u64;
pub type AltitudeAsMeanSeaLevelAsMetreAsTypeU128 = u128;
pub type AltitudeAsMeanSeaLevelAsMetreAsTypeUSize = usize;
pub type AltitudeAsMeanSeaLevelAsMetreAsTypeF32 = f32;
pub type AltitudeAsMeanSeaLevelAsMetreAsTypeF64 = f64;