use core::fmt;
#[cfg(feature = "serde")]
use serde::{Deserialize, Deserializer, Serialize, Serializer, de, ser::SerializeStruct};
#[repr(transparent)]
#[derive(Debug, Clone, Copy, PartialEq)]
pub struct Manufacturer(pub u16);
impl Manufacturer {
pub const GARMIN: Manufacturer = Manufacturer(1);
pub const GARMIN_FR405_ANTFS: Manufacturer = Manufacturer(2);
pub const ZEPHYR: Manufacturer = Manufacturer(3);
pub const DAYTON: Manufacturer = Manufacturer(4);
pub const IDT: Manufacturer = Manufacturer(5);
pub const SRM: Manufacturer = Manufacturer(6);
pub const QUARQ: Manufacturer = Manufacturer(7);
pub const IBIKE: Manufacturer = Manufacturer(8);
pub const SARIS: Manufacturer = Manufacturer(9);
pub const SPARK_HK: Manufacturer = Manufacturer(10);
pub const TANITA: Manufacturer = Manufacturer(11);
pub const ECHOWELL: Manufacturer = Manufacturer(12);
pub const DYNASTREAM_OEM: Manufacturer = Manufacturer(13);
pub const NAUTILUS: Manufacturer = Manufacturer(14);
pub const DYNASTREAM: Manufacturer = Manufacturer(15);
pub const TIMEX: Manufacturer = Manufacturer(16);
pub const METRIGEAR: Manufacturer = Manufacturer(17);
pub const XELIC: Manufacturer = Manufacturer(18);
pub const BEURER: Manufacturer = Manufacturer(19);
pub const CARDIOSPORT: Manufacturer = Manufacturer(20);
pub const A_AND_D: Manufacturer = Manufacturer(21);
pub const HMM: Manufacturer = Manufacturer(22);
pub const SUUNTO: Manufacturer = Manufacturer(23);
pub const THITA_ELEKTRONIK: Manufacturer = Manufacturer(24);
pub const GPULSE: Manufacturer = Manufacturer(25);
pub const CLEAN_MOBILE: Manufacturer = Manufacturer(26);
pub const PEDAL_BRAIN: Manufacturer = Manufacturer(27);
pub const PEAKSWARE: Manufacturer = Manufacturer(28);
pub const SAXONAR: Manufacturer = Manufacturer(29);
pub const LEMOND_FITNESS: Manufacturer = Manufacturer(30);
pub const DEXCOM: Manufacturer = Manufacturer(31);
pub const WAHOO_FITNESS: Manufacturer = Manufacturer(32);
pub const OCTANE_FITNESS: Manufacturer = Manufacturer(33);
pub const ARCHINOETICS: Manufacturer = Manufacturer(34);
pub const THE_HURT_BOX: Manufacturer = Manufacturer(35);
pub const CITIZEN_SYSTEMS: Manufacturer = Manufacturer(36);
pub const MAGELLAN: Manufacturer = Manufacturer(37);
pub const OSYNCE: Manufacturer = Manufacturer(38);
pub const HOLUX: Manufacturer = Manufacturer(39);
pub const CONCEPT2: Manufacturer = Manufacturer(40);
pub const SHIMANO: Manufacturer = Manufacturer(41);
pub const ONE_GIANT_LEAP: Manufacturer = Manufacturer(42);
pub const ACE_SENSOR: Manufacturer = Manufacturer(43);
pub const BRIM_BROTHERS: Manufacturer = Manufacturer(44);
pub const XPLOVA: Manufacturer = Manufacturer(45);
pub const PERCEPTION_DIGITAL: Manufacturer = Manufacturer(46);
pub const BF1SYSTEMS: Manufacturer = Manufacturer(47);
pub const PIONEER: Manufacturer = Manufacturer(48);
pub const SPANTEC: Manufacturer = Manufacturer(49);
pub const METALOGICS: Manufacturer = Manufacturer(50);
pub const _4IIIIS: Manufacturer = Manufacturer(51);
pub const SEIKO_EPSON: Manufacturer = Manufacturer(52);
pub const SEIKO_EPSON_OEM: Manufacturer = Manufacturer(53);
pub const IFOR_POWELL: Manufacturer = Manufacturer(54);
pub const MAXWELL_GUIDER: Manufacturer = Manufacturer(55);
pub const STAR_TRAC: Manufacturer = Manufacturer(56);
pub const BREAKAWAY: Manufacturer = Manufacturer(57);
pub const ALATECH_TECHNOLOGY_LTD: Manufacturer = Manufacturer(58);
pub const MIO_TECHNOLOGY_EUROPE: Manufacturer = Manufacturer(59);
pub const ROTOR: Manufacturer = Manufacturer(60);
pub const GEONAUTE: Manufacturer = Manufacturer(61);
pub const ID_BIKE: Manufacturer = Manufacturer(62);
pub const SPECIALIZED: Manufacturer = Manufacturer(63);
pub const WTEK: Manufacturer = Manufacturer(64);
pub const PHYSICAL_ENTERPRISES: Manufacturer = Manufacturer(65);
pub const NORTH_POLE_ENGINEERING: Manufacturer = Manufacturer(66);
pub const BKOOL: Manufacturer = Manufacturer(67);
pub const CATEYE: Manufacturer = Manufacturer(68);
pub const STAGES_CYCLING: Manufacturer = Manufacturer(69);
pub const SIGMASPORT: Manufacturer = Manufacturer(70);
pub const TOMTOM: Manufacturer = Manufacturer(71);
pub const PERIPEDAL: Manufacturer = Manufacturer(72);
pub const WATTBIKE: Manufacturer = Manufacturer(73);
pub const MOXY: Manufacturer = Manufacturer(76);
pub const CICLOSPORT: Manufacturer = Manufacturer(77);
pub const POWERBAHN: Manufacturer = Manufacturer(78);
pub const ACORN_PROJECTS_APS: Manufacturer = Manufacturer(79);
pub const LIFEBEAM: Manufacturer = Manufacturer(80);
pub const BONTRAGER: Manufacturer = Manufacturer(81);
pub const WELLGO: Manufacturer = Manufacturer(82);
pub const SCOSCHE: Manufacturer = Manufacturer(83);
pub const MAGURA: Manufacturer = Manufacturer(84);
pub const WOODWAY: Manufacturer = Manufacturer(85);
pub const ELITE: Manufacturer = Manufacturer(86);
pub const NIELSEN_KELLERMAN: Manufacturer = Manufacturer(87);
pub const DK_CITY: Manufacturer = Manufacturer(88);
pub const TACX: Manufacturer = Manufacturer(89);
pub const DIRECTION_TECHNOLOGY: Manufacturer = Manufacturer(90);
pub const MAGTONIC: Manufacturer = Manufacturer(91);
pub const _1PARTCARBON: Manufacturer = Manufacturer(92);
pub const INSIDE_RIDE_TECHNOLOGIES: Manufacturer = Manufacturer(93);
pub const SOUND_OF_MOTION: Manufacturer = Manufacturer(94);
pub const STRYD: Manufacturer = Manufacturer(95);
pub const ICG: Manufacturer = Manufacturer(96);
pub const MIPULSE: Manufacturer = Manufacturer(97);
pub const BSX_ATHLETICS: Manufacturer = Manufacturer(98);
pub const LOOK: Manufacturer = Manufacturer(99);
pub const CAMPAGNOLO_SRL: Manufacturer = Manufacturer(100);
pub const BODY_BIKE_SMART: Manufacturer = Manufacturer(101);
pub const PRAXISWORKS: Manufacturer = Manufacturer(102);
pub const LIMITS_TECHNOLOGY: Manufacturer = Manufacturer(103);
pub const TOPACTION_TECHNOLOGY: Manufacturer = Manufacturer(104);
pub const COSINUSS: Manufacturer = Manufacturer(105);
pub const FITCARE: Manufacturer = Manufacturer(106);
pub const MAGENE: Manufacturer = Manufacturer(107);
pub const GIANT_MANUFACTURING_CO: Manufacturer = Manufacturer(108);
pub const TIGRASPORT: Manufacturer = Manufacturer(109);
pub const SALUTRON: Manufacturer = Manufacturer(110);
pub const TECHNOGYM: Manufacturer = Manufacturer(111);
pub const BRYTON_SENSORS: Manufacturer = Manufacturer(112);
pub const LATITUDE_LIMITED: Manufacturer = Manufacturer(113);
pub const SOARING_TECHNOLOGY: Manufacturer = Manufacturer(114);
pub const IGPSPORT: Manufacturer = Manufacturer(115);
pub const THINKRIDER: Manufacturer = Manufacturer(116);
pub const GOPHER_SPORT: Manufacturer = Manufacturer(117);
pub const WATERROWER: Manufacturer = Manufacturer(118);
pub const ORANGETHEORY: Manufacturer = Manufacturer(119);
pub const INPEAK: Manufacturer = Manufacturer(120);
pub const KINETIC: Manufacturer = Manufacturer(121);
pub const JOHNSON_HEALTH_TECH: Manufacturer = Manufacturer(122);
pub const POLAR_ELECTRO: Manufacturer = Manufacturer(123);
pub const SEESENSE: Manufacturer = Manufacturer(124);
pub const NCI_TECHNOLOGY: Manufacturer = Manufacturer(125);
pub const IQSQUARE: Manufacturer = Manufacturer(126);
pub const LEOMO: Manufacturer = Manufacturer(127);
pub const IFIT_COM: Manufacturer = Manufacturer(128);
pub const COROS_BYTE: Manufacturer = Manufacturer(129);
pub const VERSA_DESIGN: Manufacturer = Manufacturer(130);
pub const CHILEAF: Manufacturer = Manufacturer(131);
pub const CYCPLUS: Manufacturer = Manufacturer(132);
pub const GRAVAA_BYTE: Manufacturer = Manufacturer(133);
pub const SIGEYI: Manufacturer = Manufacturer(134);
pub const COOSPO: Manufacturer = Manufacturer(135);
pub const GEOID: Manufacturer = Manufacturer(136);
pub const BOSCH: Manufacturer = Manufacturer(137);
pub const KYTO: Manufacturer = Manufacturer(138);
pub const KINETIC_SPORTS: Manufacturer = Manufacturer(139);
pub const DECATHLON_BYTE: Manufacturer = Manufacturer(140);
pub const TQ_SYSTEMS: Manufacturer = Manufacturer(141);
pub const TAG_HEUER: Manufacturer = Manufacturer(142);
pub const KEISER_FITNESS: Manufacturer = Manufacturer(143);
pub const ZWIFT_BYTE: Manufacturer = Manufacturer(144);
pub const PORSCHE_EP: Manufacturer = Manufacturer(145);
pub const BLACKBIRD: Manufacturer = Manufacturer(146);
pub const MEILAN_BYTE: Manufacturer = Manufacturer(147);
pub const EZON: Manufacturer = Manufacturer(148);
pub const LAISI: Manufacturer = Manufacturer(149);
pub const MYZONE: Manufacturer = Manufacturer(150);
pub const ABAWO: Manufacturer = Manufacturer(151);
pub const BAFANG: Manufacturer = Manufacturer(152);
pub const LUHONG_TECHNOLOGY: Manufacturer = Manufacturer(153);
pub const DEVELOPMENT: Manufacturer = Manufacturer(255);
pub const HEALTHANDLIFE: Manufacturer = Manufacturer(257);
pub const LEZYNE: Manufacturer = Manufacturer(258);
pub const SCRIBE_LABS: Manufacturer = Manufacturer(259);
pub const ZWIFT: Manufacturer = Manufacturer(260);
pub const WATTEAM: Manufacturer = Manufacturer(261);
pub const RECON: Manufacturer = Manufacturer(262);
pub const FAVERO_ELECTRONICS: Manufacturer = Manufacturer(263);
pub const DYNOVELO: Manufacturer = Manufacturer(264);
pub const STRAVA: Manufacturer = Manufacturer(265);
pub const PRECOR: Manufacturer = Manufacturer(266);
pub const BRYTON: Manufacturer = Manufacturer(267);
pub const SRAM: Manufacturer = Manufacturer(268);
pub const NAVMAN: Manufacturer = Manufacturer(269);
pub const COBI: Manufacturer = Manufacturer(270);
pub const SPIVI: Manufacturer = Manufacturer(271);
pub const MIO_MAGELLAN: Manufacturer = Manufacturer(272);
pub const EVESPORTS: Manufacturer = Manufacturer(273);
pub const SENSITIVUS_GAUGE: Manufacturer = Manufacturer(274);
pub const PODOON: Manufacturer = Manufacturer(275);
pub const LIFE_TIME_FITNESS: Manufacturer = Manufacturer(276);
pub const FALCO_E_MOTORS: Manufacturer = Manufacturer(277);
pub const MINOURA: Manufacturer = Manufacturer(278);
pub const CYCLIQ: Manufacturer = Manufacturer(279);
pub const LUXOTTICA: Manufacturer = Manufacturer(280);
pub const TRAINER_ROAD: Manufacturer = Manufacturer(281);
pub const THE_SUFFERFEST: Manufacturer = Manufacturer(282);
pub const FULLSPEEDAHEAD: Manufacturer = Manufacturer(283);
pub const VIRTUALTRAINING: Manufacturer = Manufacturer(284);
pub const FEEDBACKSPORTS: Manufacturer = Manufacturer(285);
pub const OMATA: Manufacturer = Manufacturer(286);
pub const VDO: Manufacturer = Manufacturer(287);
pub const MAGNETICDAYS: Manufacturer = Manufacturer(288);
pub const HAMMERHEAD: Manufacturer = Manufacturer(289);
pub const KINETIC_BY_KURT: Manufacturer = Manufacturer(290);
pub const SHAPELOG: Manufacturer = Manufacturer(291);
pub const DABUZIDUO: Manufacturer = Manufacturer(292);
pub const JETBLACK: Manufacturer = Manufacturer(293);
pub const COROS: Manufacturer = Manufacturer(294);
pub const VIRTUGO: Manufacturer = Manufacturer(295);
pub const VELOSENSE: Manufacturer = Manufacturer(296);
pub const CYCLIGENTINC: Manufacturer = Manufacturer(297);
pub const TRAILFORKS: Manufacturer = Manufacturer(298);
pub const MAHLE_EBIKEMOTION: Manufacturer = Manufacturer(299);
pub const NURVV: Manufacturer = Manufacturer(300);
pub const MICROPROGRAM: Manufacturer = Manufacturer(301);
pub const ZONE5CLOUD: Manufacturer = Manufacturer(302);
pub const GREENTEG: Manufacturer = Manufacturer(303);
pub const YAMAHA_MOTORS: Manufacturer = Manufacturer(304);
pub const WHOOP: Manufacturer = Manufacturer(305);
pub const GRAVAA: Manufacturer = Manufacturer(306);
pub const ONELAP: Manufacturer = Manufacturer(307);
pub const MONARK_EXERCISE: Manufacturer = Manufacturer(308);
pub const FORM: Manufacturer = Manufacturer(309);
pub const DECATHLON: Manufacturer = Manufacturer(310);
pub const SYNCROS: Manufacturer = Manufacturer(311);
pub const HEATUP: Manufacturer = Manufacturer(312);
pub const CANNONDALE: Manufacturer = Manufacturer(313);
pub const TRUE_FITNESS: Manufacturer = Manufacturer(314);
pub const RGT_CYCLING: Manufacturer = Manufacturer(315);
pub const VASA: Manufacturer = Manufacturer(316);
pub const RACE_REPUBLIC: Manufacturer = Manufacturer(317);
pub const FAZUA: Manufacturer = Manufacturer(318);
pub const OREKA_TRAINING: Manufacturer = Manufacturer(319);
pub const LSEC: Manufacturer = Manufacturer(320);
pub const LULULEMON_STUDIO: Manufacturer = Manufacturer(321);
pub const SHANYUE: Manufacturer = Manufacturer(322);
pub const SPINNING_MDA: Manufacturer = Manufacturer(323);
pub const HILLDATING: Manufacturer = Manufacturer(324);
pub const AERO_SENSOR: Manufacturer = Manufacturer(325);
pub const NIKE: Manufacturer = Manufacturer(326);
pub const MAGICSHINE: Manufacturer = Manufacturer(327);
pub const ICTRAINER: Manufacturer = Manufacturer(328);
pub const ABSOLUTE_CYCLING: Manufacturer = Manufacturer(329);
pub const EO_SWIMBETTER: Manufacturer = Manufacturer(330);
pub const MYWHOOSH: Manufacturer = Manufacturer(331);
pub const RAVEMEN: Manufacturer = Manufacturer(332);
pub const TEKTRO_RACING_PRODUCTS: Manufacturer = Manufacturer(333);
pub const DARAD_INNOVATION_CORPORATION: Manufacturer = Manufacturer(334);
pub const CYCLOPTIM: Manufacturer = Manufacturer(335);
pub const RUNNA: Manufacturer = Manufacturer(337);
pub const ZEPP: Manufacturer = Manufacturer(339);
pub const PELOTON: Manufacturer = Manufacturer(340);
pub const CARV: Manufacturer = Manufacturer(341);
pub const TISSOT: Manufacturer = Manufacturer(342);
pub const REAL_VELO: Manufacturer = Manufacturer(345);
pub const WETECH: Manufacturer = Manufacturer(346);
pub const JESPR: Manufacturer = Manufacturer(347);
pub const HUAWEI: Manufacturer = Manufacturer(348);
pub const GOTOES: Manufacturer = Manufacturer(349);
pub const CADENCE_APP: Manufacturer = Manufacturer(350);
pub const ACTIGRAPHCORP: Manufacturer = Manufacturer(5759);
fn as_str(self) -> Option<&'static str> {
match self.0 {
1 => Some("garmin"),
2 => Some("garmin_fr405_antfs"),
3 => Some("zephyr"),
4 => Some("dayton"),
5 => Some("idt"),
6 => Some("srm"),
7 => Some("quarq"),
8 => Some("ibike"),
9 => Some("saris"),
10 => Some("spark_hk"),
11 => Some("tanita"),
12 => Some("echowell"),
13 => Some("dynastream_oem"),
14 => Some("nautilus"),
15 => Some("dynastream"),
16 => Some("timex"),
17 => Some("metrigear"),
18 => Some("xelic"),
19 => Some("beurer"),
20 => Some("cardiosport"),
21 => Some("a_and_d"),
22 => Some("hmm"),
23 => Some("suunto"),
24 => Some("thita_elektronik"),
25 => Some("gpulse"),
26 => Some("clean_mobile"),
27 => Some("pedal_brain"),
28 => Some("peaksware"),
29 => Some("saxonar"),
30 => Some("lemond_fitness"),
31 => Some("dexcom"),
32 => Some("wahoo_fitness"),
33 => Some("octane_fitness"),
34 => Some("archinoetics"),
35 => Some("the_hurt_box"),
36 => Some("citizen_systems"),
37 => Some("magellan"),
38 => Some("osynce"),
39 => Some("holux"),
40 => Some("concept2"),
41 => Some("shimano"),
42 => Some("one_giant_leap"),
43 => Some("ace_sensor"),
44 => Some("brim_brothers"),
45 => Some("xplova"),
46 => Some("perception_digital"),
47 => Some("bf1systems"),
48 => Some("pioneer"),
49 => Some("spantec"),
50 => Some("metalogics"),
51 => Some("4iiiis"),
52 => Some("seiko_epson"),
53 => Some("seiko_epson_oem"),
54 => Some("ifor_powell"),
55 => Some("maxwell_guider"),
56 => Some("star_trac"),
57 => Some("breakaway"),
58 => Some("alatech_technology_ltd"),
59 => Some("mio_technology_europe"),
60 => Some("rotor"),
61 => Some("geonaute"),
62 => Some("id_bike"),
63 => Some("specialized"),
64 => Some("wtek"),
65 => Some("physical_enterprises"),
66 => Some("north_pole_engineering"),
67 => Some("bkool"),
68 => Some("cateye"),
69 => Some("stages_cycling"),
70 => Some("sigmasport"),
71 => Some("tomtom"),
72 => Some("peripedal"),
73 => Some("wattbike"),
76 => Some("moxy"),
77 => Some("ciclosport"),
78 => Some("powerbahn"),
79 => Some("acorn_projects_aps"),
80 => Some("lifebeam"),
81 => Some("bontrager"),
82 => Some("wellgo"),
83 => Some("scosche"),
84 => Some("magura"),
85 => Some("woodway"),
86 => Some("elite"),
87 => Some("nielsen_kellerman"),
88 => Some("dk_city"),
89 => Some("tacx"),
90 => Some("direction_technology"),
91 => Some("magtonic"),
92 => Some("1partcarbon"),
93 => Some("inside_ride_technologies"),
94 => Some("sound_of_motion"),
95 => Some("stryd"),
96 => Some("icg"),
97 => Some("MiPulse"),
98 => Some("bsx_athletics"),
99 => Some("look"),
100 => Some("campagnolo_srl"),
101 => Some("body_bike_smart"),
102 => Some("praxisworks"),
103 => Some("limits_technology"),
104 => Some("topaction_technology"),
105 => Some("cosinuss"),
106 => Some("fitcare"),
107 => Some("magene"),
108 => Some("giant_manufacturing_co"),
109 => Some("tigrasport"),
110 => Some("salutron"),
111 => Some("technogym"),
112 => Some("bryton_sensors"),
113 => Some("latitude_limited"),
114 => Some("soaring_technology"),
115 => Some("igpsport"),
116 => Some("thinkrider"),
117 => Some("gopher_sport"),
118 => Some("waterrower"),
119 => Some("orangetheory"),
120 => Some("inpeak"),
121 => Some("kinetic"),
122 => Some("johnson_health_tech"),
123 => Some("polar_electro"),
124 => Some("seesense"),
125 => Some("nci_technology"),
126 => Some("iqsquare"),
127 => Some("leomo"),
128 => Some("ifit_com"),
129 => Some("coros_byte"),
130 => Some("versa_design"),
131 => Some("chileaf"),
132 => Some("cycplus"),
133 => Some("gravaa_byte"),
134 => Some("sigeyi"),
135 => Some("coospo"),
136 => Some("geoid"),
137 => Some("bosch"),
138 => Some("kyto"),
139 => Some("kinetic_sports"),
140 => Some("decathlon_byte"),
141 => Some("tq_systems"),
142 => Some("tag_heuer"),
143 => Some("keiser_fitness"),
144 => Some("zwift_byte"),
145 => Some("porsche_ep"),
146 => Some("blackbird"),
147 => Some("meilan_byte"),
148 => Some("ezon"),
149 => Some("laisi"),
150 => Some("myzone"),
151 => Some("abawo"),
152 => Some("bafang"),
153 => Some("luhong_technology"),
255 => Some("development"),
257 => Some("healthandlife"),
258 => Some("lezyne"),
259 => Some("scribe_labs"),
260 => Some("zwift"),
261 => Some("watteam"),
262 => Some("recon"),
263 => Some("favero_electronics"),
264 => Some("dynovelo"),
265 => Some("strava"),
266 => Some("precor"),
267 => Some("bryton"),
268 => Some("sram"),
269 => Some("navman"),
270 => Some("cobi"),
271 => Some("spivi"),
272 => Some("mio_magellan"),
273 => Some("evesports"),
274 => Some("sensitivus_gauge"),
275 => Some("podoon"),
276 => Some("life_time_fitness"),
277 => Some("falco_e_motors"),
278 => Some("minoura"),
279 => Some("cycliq"),
280 => Some("luxottica"),
281 => Some("trainer_road"),
282 => Some("the_sufferfest"),
283 => Some("fullspeedahead"),
284 => Some("virtualtraining"),
285 => Some("feedbacksports"),
286 => Some("omata"),
287 => Some("vdo"),
288 => Some("magneticdays"),
289 => Some("hammerhead"),
290 => Some("kinetic_by_kurt"),
291 => Some("shapelog"),
292 => Some("dabuziduo"),
293 => Some("jetblack"),
294 => Some("coros"),
295 => Some("virtugo"),
296 => Some("velosense"),
297 => Some("cycligentinc"),
298 => Some("trailforks"),
299 => Some("mahle_ebikemotion"),
300 => Some("nurvv"),
301 => Some("microprogram"),
302 => Some("zone5cloud"),
303 => Some("greenteg"),
304 => Some("yamaha_motors"),
305 => Some("whoop"),
306 => Some("gravaa"),
307 => Some("onelap"),
308 => Some("monark_exercise"),
309 => Some("form"),
310 => Some("decathlon"),
311 => Some("syncros"),
312 => Some("heatup"),
313 => Some("cannondale"),
314 => Some("true_fitness"),
315 => Some("RGT_cycling"),
316 => Some("vasa"),
317 => Some("race_republic"),
318 => Some("fazua"),
319 => Some("oreka_training"),
320 => Some("lsec"),
321 => Some("lululemon_studio"),
322 => Some("shanyue"),
323 => Some("spinning_mda"),
324 => Some("hilldating"),
325 => Some("aero_sensor"),
326 => Some("nike"),
327 => Some("magicshine"),
328 => Some("ictrainer"),
329 => Some("absolute_cycling"),
330 => Some("eo_swimbetter"),
331 => Some("mywhoosh"),
332 => Some("ravemen"),
333 => Some("tektro_racing_products"),
334 => Some("darad_innovation_corporation"),
335 => Some("cycloptim"),
337 => Some("runna"),
339 => Some("zepp"),
340 => Some("peloton"),
341 => Some("carv"),
342 => Some("tissot"),
345 => Some("real_velo"),
346 => Some("wetech"),
347 => Some("jespr"),
348 => Some("huawei"),
349 => Some("gotoes"),
350 => Some("cadence_app"),
5759 => Some("actigraphcorp"),
_ => None,
}
}
}
impl Default for Manufacturer {
fn default() -> Self {
Self(u16::MAX)
}
}
impl fmt::Display for Manufacturer {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self.as_str() {
Some(s) => write!(f, "{}", s),
None => write!(f, "Manufacturer({})", self.0),
}
}
}
#[cfg(feature = "serde")]
impl Serialize for Manufacturer {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
let mut state = serializer.serialize_struct("Manufacturer", 2)?;
if let Some(s) = self.as_str() {
state.serialize_field("t", s)?;
}
state.serialize_field("c", &self.0)?;
state.end()
}
}
#[cfg(feature = "serde")]
#[cfg_attr(feature = "serde", derive(Deserialize))]
struct De<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
t: Option<&'a str>,
c: u16,
}
#[cfg(feature = "serde")]
impl<'de> Deserialize<'de> for Manufacturer {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
let repr = De::deserialize(deserializer)?;
let v = Self(repr.c);
if let Some(t) = repr.t
&& let Some(s) = v.as_str()
&& t != s
{
return Err(de::Error::custom("tag and content mismatch"));
}
Ok(v)
}
}