1use crate::unit::{Conversion, ConversionFraction, Derived, DerivedVtable, Unit};
4
5pub static AU: Derived = Derived {
7 id: crate::generated::ids::AU,
8 vtable: &DerivedVtable {
9 powers: |powers, p| {
10 powers.insert(Unit::Meter, p);
11 },
12 format: |f, _| write!(f, "au"),
13 conversion: Some(Conversion::Factor(ConversionFraction {
14 numer: 149597870700,
15 denom: 1,
16 })),
17 },
18};
19
20pub static FATHOM: Derived = Derived {
22 id: crate::generated::ids::FATHOM,
23 vtable: &DerivedVtable {
24 powers: |powers, p| {
25 powers.insert(Unit::Meter, p);
26 },
27 format: |f, _| write!(f, "ftm"),
28 conversion: Some(Conversion::Factor(ConversionFraction {
29 numer: 1852,
30 denom: 1000,
31 })),
32 },
33};
34
35pub static CABLE: Derived = Derived {
37 id: crate::generated::ids::CABLE,
38 vtable: &DerivedVtable {
39 powers: |powers, p| {
40 powers.insert(Unit::Meter, p);
41 },
42 format: |f, pluralize| {
43 if pluralize {
44 write!(f, "cables")
45 } else {
46 write!(f, "cable")
47 }
48 },
49 conversion: Some(Conversion::Factor(ConversionFraction {
50 numer: 1852,
51 denom: 10,
52 })),
53 },
54};
55
56pub static NAUTICAL_MILE: Derived = Derived {
58 id: crate::generated::ids::NAUTICAL_MILE,
59 vtable: &DerivedVtable {
60 powers: |powers, p| {
61 powers.insert(Unit::Meter, p);
62 },
63 format: |f, _| write!(f, "NM"),
64 conversion: Some(Conversion::Factor(ConversionFraction {
65 numer: 1852,
66 denom: 1,
67 })),
68 },
69};
70
71pub static LINK: Derived = Derived {
73 id: crate::generated::ids::LINK,
74 vtable: &DerivedVtable {
75 powers: |powers, p| {
76 powers.insert(Unit::Meter, p);
77 },
78 format: |f, pluralize| {
79 if pluralize {
80 write!(f, "links")
81 } else {
82 write!(f, "link")
83 }
84 },
85 conversion: Some(Conversion::Factor(ConversionFraction {
86 numer: 201168,
87 denom: 1000000,
88 })),
89 },
90};
91
92pub static ROD: Derived = Derived {
94 id: crate::generated::ids::ROD,
95 vtable: &DerivedVtable {
96 powers: |powers, p| {
97 powers.insert(Unit::Meter, p);
98 },
99 format: |f, _| write!(f, "rd"),
100 conversion: Some(Conversion::Factor(ConversionFraction {
101 numer: 50292,
102 denom: 10000,
103 })),
104 },
105};
106
107pub static THOU: Derived = Derived {
109 id: crate::generated::ids::THOU,
110 vtable: &DerivedVtable {
111 powers: |powers, p| {
112 powers.insert(Unit::Meter, p);
113 },
114 format: |f, _| write!(f, "th"),
115 conversion: Some(Conversion::Factor(ConversionFraction {
116 numer: 254,
117 denom: 10000000,
118 })),
119 },
120};
121
122pub static BARLEYCORN: Derived = Derived {
124 id: crate::generated::ids::BARLEYCORN,
125 vtable: &DerivedVtable {
126 powers: |powers, p| {
127 powers.insert(Unit::Meter, p);
128 },
129 format: |f, _| write!(f, "Bc"),
130 conversion: Some(Conversion::Factor(ConversionFraction {
131 numer: 254,
132 denom: 30000,
133 })),
134 },
135};
136
137pub static INCH: Derived = Derived {
139 id: crate::generated::ids::INCH,
140 vtable: &DerivedVtable {
141 powers: |powers, p| {
142 powers.insert(Unit::Meter, p);
143 },
144 format: |f, _| write!(f, "in"),
145 conversion: Some(Conversion::Factor(ConversionFraction {
146 numer: 254,
147 denom: 10000,
148 })),
149 },
150};
151
152pub static HAND: Derived = Derived {
154 id: crate::generated::ids::HAND,
155 vtable: &DerivedVtable {
156 powers: |powers, p| {
157 powers.insert(Unit::Meter, p);
158 },
159 format: |f, _| write!(f, "hand"),
160 conversion: Some(Conversion::Factor(ConversionFraction {
161 numer: 1016,
162 denom: 10000,
163 })),
164 },
165};
166
167pub static FOOT: Derived = Derived {
169 id: crate::generated::ids::FOOT,
170 vtable: &DerivedVtable {
171 powers: |powers, p| {
172 powers.insert(Unit::Meter, p);
173 },
174 format: |f, _| write!(f, "ft"),
175 conversion: Some(Conversion::Factor(ConversionFraction {
176 numer: 3048,
177 denom: 10000,
178 })),
179 },
180};
181
182pub static YARD: Derived = Derived {
184 id: crate::generated::ids::YARD,
185 vtable: &DerivedVtable {
186 powers: |powers, p| {
187 powers.insert(Unit::Meter, p);
188 },
189 format: |f, _| write!(f, "yd"),
190 conversion: Some(Conversion::Factor(ConversionFraction {
191 numer: 9144,
192 denom: 10000,
193 })),
194 },
195};
196
197pub static CHAIN: Derived = Derived {
199 id: crate::generated::ids::CHAIN,
200 vtable: &DerivedVtable {
201 powers: |powers, p| {
202 powers.insert(Unit::Meter, p);
203 },
204 format: |f, _| write!(f, "ch"),
205 conversion: Some(Conversion::Factor(ConversionFraction {
206 numer: 201168,
207 denom: 10000,
208 })),
209 },
210};
211
212pub static FURLONG: Derived = Derived {
214 id: crate::generated::ids::FURLONG,
215 vtable: &DerivedVtable {
216 powers: |powers, p| {
217 powers.insert(Unit::Meter, p);
218 },
219 format: |f, _| write!(f, "fur"),
220 conversion: Some(Conversion::Factor(ConversionFraction {
221 numer: 201168,
222 denom: 1000,
223 })),
224 },
225};
226
227pub static MILE: Derived = Derived {
229 id: crate::generated::ids::MILE,
230 vtable: &DerivedVtable {
231 powers: |powers, p| {
232 powers.insert(Unit::Meter, p);
233 },
234 format: |f, _| write!(f, "mi"),
235 conversion: Some(Conversion::Factor(ConversionFraction {
236 numer: 1609344,
237 denom: 1000,
238 })),
239 },
240};
241
242pub static LEAGUE: Derived = Derived {
244 id: crate::generated::ids::LEAGUE,
245 vtable: &DerivedVtable {
246 powers: |powers, p| {
247 powers.insert(Unit::Meter, p);
248 },
249 format: |f, _| write!(f, "lea"),
250 conversion: Some(Conversion::Factor(ConversionFraction {
251 numer: 4828032,
252 denom: 1000,
253 })),
254 },
255};