Skip to content

Commit 6bd3299

Browse files
author
Jonathan Pallant
committed
Add International spelling of metre/litre.
Use US spelling by default.
1 parent fdd2c3e commit 6bd3299

File tree

3 files changed

+150
-53
lines changed

3 files changed

+150
-53
lines changed

src/length.rs

Lines changed: 67 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,39 +34,72 @@ pub struct Length {
3434
}
3535

3636
impl Length {
37-
// Inputs, metric
37+
// Inputs, metric, with both spellings of meter/metre
38+
3839
pub fn from_meters(meters: f64) -> Self {
3940
Length { meters: meters }
4041
}
4142

43+
pub fn from_metres(metres: f64) -> Self {
44+
Self::from_meters(metres)
45+
}
46+
4247
pub fn from_nanometers(nanometers: f64) -> Self {
4348
Self::from_meters(nanometers / METER_NANOMETER_FACTOR)
4449
}
4550

51+
pub fn from_nanometres(nanometers: f64) -> Self {
52+
Self::from_nanometers(nanometers)
53+
}
54+
4655
pub fn from_micrometers(micrometers: f64) -> Self {
4756
Self::from_meters(micrometers / METER_MICROMETER_FACTOR)
4857
}
4958

59+
pub fn from_micrometres(micrometers: f64) -> Self {
60+
Self::from_micrometers(micrometers)
61+
}
62+
5063
pub fn from_millimeters(millimeters: f64) -> Self {
5164
Self::from_meters(millimeters / METER_MILLIMETER_FACTOR)
5265
}
5366

67+
pub fn from_millimetres(millimeters: f64) -> Self {
68+
Self::from_millimeters(millimeters)
69+
}
70+
5471
pub fn from_centimeters(centimeters: f64) -> Self {
5572
Self::from_meters(centimeters / METER_CENTIMETER_FACTOR)
5673
}
5774

75+
pub fn from_centimetres(centimeters: f64) -> Self {
76+
Self::from_centimeters(centimeters)
77+
}
78+
5879
pub fn from_decameters(decameters: f64) -> Self {
5980
Self::from_meters(decameters / METER_DECAMETER_FACTOR)
6081
}
6182

83+
pub fn from_decametres(decameters: f64) -> Self {
84+
Self::from_decameters(decameters)
85+
}
86+
6287
pub fn from_hectometers(hectometers: f64) -> Self {
6388
Self::from_meters(hectometers / METER_HECTOMETER_FACTOR)
6489
}
6590

91+
pub fn from_hectometres(hectometers: f64) -> Self {
92+
Self::from_hectometers(hectometers)
93+
}
94+
6695
pub fn from_kilometers(kilometers: f64) -> Self {
6796
Self::from_meters(kilometers / METER_KILOMETER_FACTOR)
6897
}
6998

99+
pub fn from_kilometres(kilometers: f64) -> Self {
100+
Self::from_kilometers(kilometers)
101+
}
102+
70103
// Inputs, imperial
71104
pub fn from_inches(inches: f64) -> Self {
72105
Self::from_meters(inches / METER_INCH_FACTOR)
@@ -93,34 +126,66 @@ impl Length {
93126
self.meters * METER_NANOMETER_FACTOR
94127
}
95128

129+
pub fn as_nanometres(&self) -> f64 {
130+
self.as_nanometers()
131+
}
132+
96133
pub fn as_micrometers(&self) -> f64 {
97134
self.meters * METER_MICROMETER_FACTOR
98135
}
99136

137+
pub fn as_micrometres(&self) -> f64 {
138+
self.as_micrometers()
139+
}
140+
100141
pub fn as_millimeters(&self) -> f64 {
101142
self.meters * METER_MILLIMETER_FACTOR
102143
}
103144

145+
pub fn as_millimetres(&self) -> f64 {
146+
self.as_millimeters()
147+
}
148+
104149
pub fn as_centimeters(&self) -> f64 {
105150
self.meters * METER_CENTIMETER_FACTOR
106151
}
107152

153+
pub fn as_centimetres(&self) -> f64 {
154+
self.as_centimeters()
155+
}
156+
108157
pub fn as_meters(&self) -> f64 {
109158
self.meters
110159
}
111160

161+
pub fn as_metres(&self) -> f64 {
162+
self.as_meters()
163+
}
164+
112165
pub fn as_decameters(&self) -> f64 {
113166
self.meters * METER_DECAMETER_FACTOR
114167
}
115168

116-
pub fn as_hectometer(&self) -> f64 {
169+
pub fn as_decametres(&self) -> f64 {
170+
self.as_decameters()
171+
}
172+
173+
pub fn as_hectometers(&self) -> f64 {
117174
self.meters * METER_HECTOMETER_FACTOR
118175
}
119176

177+
pub fn as_hectometres(&self) -> f64 {
178+
self.as_hectometers()
179+
}
180+
120181
pub fn as_kilometers(&self) -> f64 {
121182
self.meters * METER_KILOMETER_FACTOR
122183
}
123184

185+
pub fn as_kilometres(&self) -> f64 {
186+
self.as_kilometers()
187+
}
188+
124189
// Outputs, imperial
125190
pub fn as_inches(&self) -> f64 {
126191
self.meters * METER_INCH_FACTOR

src/tests/length_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ fn decameter() {
6565
#[test]
6666
fn hectometer() {
6767
let i1 = Length::from_meters(100.0);
68-
let r1 = i1.as_hectometer();
68+
let r1 = i1.as_hectometers();
6969

7070
let i2 = Length::from_hectometers(100.0);
7171
let r2 = i2.as_meters();

0 commit comments

Comments
 (0)