From 10a9f9f2cae4ee32b0e086f59055a203ef947e02 Mon Sep 17 00:00:00 2001 From: Smitty Date: Sat, 29 May 2021 13:36:07 -0400 Subject: [PATCH] split consts to seperate file --- src/ids.rs | 294 +--------------------------------------------- src/ids/consts.rs | 292 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 294 insertions(+), 292 deletions(-) create mode 100644 src/ids/consts.rs diff --git a/src/ids.rs b/src/ids.rs index 4e6438c..99f5d58 100755 --- a/src/ids.rs +++ b/src/ids.rs @@ -3,6 +3,8 @@ use serde::{Deserialize, Serialize}; use std::{num::ParseIntError, str::FromStr}; +pub mod consts; + /// An error parsing an ID. #[derive(Debug, Clone)] pub enum IdParseError { @@ -87,298 +89,6 @@ impl ToString for Sid { } } -macro_rules! qid_consts ( - { $($key:ident => $value:expr),+, } => { - $( - #[allow(missing_docs)] - pub const $key: Qid = Qid($value); - )+ - }; -); -macro_rules! pid_consts ( - { $($key:ident => $value:expr),+, } => { - $( - #[allow(missing_docs)] - pub const $key: Pid = Pid($value); - )+ - }; -); - -macro_rules! qid_unit_suffixes { - { $($key:ident => $value:expr),+, } => { - #[must_use] - pub(super) const fn unit_suffix(qid: Qid) -> Option<&'static str> { - $( - if qid.0 == ($key).0 { - Some($value) - } else - )+ - { - None - } - } - }; -} - -impl Qid { - /// If the Qid is a commonly used unit on Wikidata, get it as a unit suffix. - #[must_use] - pub const fn unit_suffix(self) -> Option<&'static str> { - consts::unit_suffix(self) - } -} - -#[allow(clippy::unreadable_literal)] -/// Various IDs for commonly used entities/properties on Wikidata. -pub mod consts { - use super::*; - qid_consts! { - EARTH => 2, - HUMAN => 5, - UNIT_OF_MEASUREMENT => 47574, - PHYSICAL_QUANTITY => 107715, - SI_BASE_UNIT => 223662, - LENGTH => 36253, - METRE => 11573, - YOTTAMETRE => 10543042, - ZETTAMETRE => 3277915, - EXAMETRE => 3277907, - PETAMETRE => 3277919, - TERAMETRE => 3267417, - GIGAMETRE => 854546, - MEGAMETRE => 1054140, - MYRIAMETRE => 1970718, - KILOMETRE => 828224, - HECTOMETRE => 844338, - DECAMETRE => 848856, - DECIMETRE => 200323, - CENTIMETRE => 174728, - MILLIMETRE => 174789, - MICROMETRE => 175821, - NANOMETRE => 178674, - PICOMETRE => 192274, - FEMTOMETRE => 208788, - ATTOMETRE => 6003257, - ZEPTOMETRE => 3270676, - YOCTOMETRE => 3221356, - PARSEC => 12129, - GIGAPARSEC => 14916719, - MEGAPARSEC => 3773454, - KILOPARSEC => 11929860, - ATTOPARSEC => 15784325, - LIGHT_YEAR => 531, - LIGHT_SECOND => 909315, - ASTRONOMICAL_UNIT => 1811, - MILE => 253276, - FOOT => 3710, - INCH => 218593, - THOU => 1165799, - AREA => 11500, - SQUARE_METRE => 25343, - SQUARE_KILOMETRE => 712226, - SQUARE_CENTIMETRE => 2489298, - SQUARE_MILLIMETRE => 2737347, - ARE => 185078, - HECTARE => 35852, - VOLUME => 39297, - CUBIC_METRE => 25517, - CUBIC_KILOMETRE => 4243638, - CUBIC_DECIMETRE => 2175964, - CUBIC_CENTIMETRE => 1022113, - CUBIC_MILLIMETRE => 3675550, - LITER => 11582, - HECTOLITER => 2029519, - DECALITER => 2637946, - CENTILITER => 1815100, - MILLILITER => 2332346, - MICROLITER => 2282891, - PICOLITER => 3902688, - FEMTOLITER => 3312063, - TIME => 11471, - FREQUENCY => 11652, - TIME_INTERVAL => 186081, - SECOND => 11574, - MILLISECOND => 723733, - MICROSECOND => 842015, - NANOSECOND => 838801, - FEMTOSECOND => 1777507, - ATTOSECOND => 2483628, - PICOSECOND => 3902709, - DAY => 573, - WEEK => 23387, - HOUR => 25235, - MINUTE => 7727, - MONTH => 5151, - ANNUM => 1092296, - YEAR => 577, - TWENTY_FOUR_HOUR_CLOCK => 216589, - HERTZ => 39369, - KILOHERTZ => 2143992, - MEGAHERTZ => 732707, - GIGAHERTZ => 3276763, - MASS => 11423, - KILOGRAM => 11570, - YOTTAGRAM => 613726, - ZETTAGRAM => 14754979, - EXAGRAM => 2655272, - PETAGRAM => 2612219, - TERAGRAM => 1770733, - GIGAGRAM => 2799294, - MEGAGRAM => 11776930, - MYRIAGRAM => 2151240, - HECTOGRAM => 1057069, - DECAGRAM => 6517513, - GRAM => 41803, - DECIGRAM => 1772386, - CENTIGRAM => 2691798, - MILLIGRAM => 3241121, - MICROGRAM => 1645498, - NANOGRAM => 2282906, - PICOGRAM => 3239557, - FEMTOGRAM => 1913097, - ATTOGRAM => 2438073, - ZEPTOGRAM => 6171168, - YOCTOGRAM => 6170164, - POUND => 100995, - DALTON => 483261, - DENSITY => 29539, - KILOGRAM_PER_CUBIC_METRE => 844211, - GRAM_PER_CUBIC_CENTIMETRE => 13147228, - CONCENTRATION => 3686031, - GRAM_PER_LITER => 834105, - MILLILITRE_PER_LITRE => 21075844, - MILLIGRAM_PER_CUBIC_METER => 21077820, - MOL_PER_KILOGRAM_OF_SOLVENT => 21064838, - MOL_PER_LITRE_OF_SOLUTION => 21064845, - MASS_FRACTION => 899138, - MOLE_FRACTION => 125264, - VOLUME_FRACTION => 909482, - PARTS_PER_MILLION => 21006887, - PART_PER_BILLION => 2055118, - MILLIGRAM_PER_KILOGRAM => 21091747, - GRAM_PER_KILOGRAM => 21061369, - TEMPERATURE => 11466, - DEGREE_CELSIUS => 25267, - KELVIN => 11579, - DEGREE_FAHRENHEIT => 42289, - RANKINE_SCALE => 207488, - PRESSURE => 39552, - ATMOSPHERE => 177974, - TECHNICAL_ATMOSPHERE => 909066, - BAR => 103510, - PASCAL => 44395, - MEGAPASCAL => 21062777, - KILOPASCAL => 21064807, - HECTOPASCAL => 5139563, - TORR => 185648, - MILLIMETER_OF_MERCURY => 6859652, - METRE_OF_WATER => 2042279, - CENTIMETRE_OF_WATER => 1247300, - MILLIMETRE_OF_WATER => 13479685, - HEAT_CAPACITY => 179388, - JOULE_PER_MOLE_KELVIN => 20966455, - THERMAL_CONDUCTIVITY => 487005, - WATT_PER_METRE_KELVIN => 1463969, - SPEED => 3711325, - KILOMETRE_PER_HOUR => 180154, - METRE_PER_SECOND => 182429, - KNOT => 128822, - KINEMATIC_VISCOSITY => 15106259, - STOKES => 1569733, - ELECTRICAL_CONDUCTIVITY => 4593291, - AMPERE_PER_VOLT_METRE => 20966435, - LUMINOSITY => 105902, - SOLAR_LUMINOSITY => 843877, - ENTHALPY => 161064, - JOULE_PER_MOLE => 13035094, - KILOJOULE_PER_MOLE => 752197, - KILOJOULE_PER_KILOGRAM => 21077849, - CURRENCY => 8142, - EURO => 4916, - CRORE => 1137675, - INFECTION => 166231, - DEGREE => 28390, - BUSINESS => 4830453, - FICTIONAL_HUMAN => 15632617, - } - // only include common ones - qid_unit_suffixes! { - METRE => " m", - KILOMETRE => " km", - CENTIMETRE => " cm", - MILLIMETRE => " mm", - SQUARE_METRE => " m²", - SQUARE_KILOMETRE => " km²", - SQUARE_CENTIMETRE => " cm²", - SQUARE_MILLIMETRE => " mm²", - CUBIC_METRE => " m³", - CUBIC_KILOMETRE => " km³", - CUBIC_CENTIMETRE => " cm³", - CUBIC_MILLIMETRE => " mm³", - GRAM => " g", - MILLIGRAM => " mg", - KILOGRAM_PER_CUBIC_METRE => " kg/m³", - GRAM_PER_CUBIC_CENTIMETRE => " g/cm³", - MILLILITRE_PER_LITRE => " ml/l", - MILLIGRAM_PER_CUBIC_METER => " mg/cm³", - PARTS_PER_MILLION => " ppm", - MILLIGRAM_PER_KILOGRAM => " mg/k", - GRAM_PER_KILOGRAM => " g/kg", - DEGREE_CELSIUS => " °C", - KELVIN => " °K", - DEGREE_FAHRENHEIT => " °F", - KILOMETRE_PER_HOUR => " km/h", - ASTRONOMICAL_UNIT => " AU", - DEGREE => "°", - } - pid_consts! { - INSTANCE_OF => 31, - REFERENCE_URL => 854, - LANGUAGE => 407, // language of work or name fully - TITLE => 1476, - AUTHOR => 50, - AUTHOR_NAME_STRING => 2093, - STATED_IN => 248, - HEIGHT => 2048, - DATE_OF_BIRTH => 569, - DATE_OF_DEATH => 570, - NET_WORTH => 2218, - SPOUSE => 26, - EDUCATED_AT => 69, - NUMBER_OF_CHILDREN => 1971, - AWARD_RECEIVED => 166, - OFFICIAL_NAME => 1448, - EMAIL => 968, - SIBLING => 3373, - NOMINATED_FOR => 1411, - PHONE => 1329, - EMPLOYEES => 1128, - INCEPTION => 571, - CEO => 169, - TICKER_SYMBOL => 249, - LEGAL_FORM => 1454, - FOUNDED_BY => 112, - SEX_OR_GENDER => 21, - CITIZENSHIP => 27, - PLACE_OF_BIRTH => 19, - PLACE_OF_DEATH => 570, - FATHER => 22, - UNMARRIED_PARTNER => 451, - CHILD => 40, - MOTHER => 25, - EYE_COLOR => 1340, - HAIR_COLOR => 1884, - HANDEDNESS => 552, - MILITARY_RANK => 410, - PRONOUN => 6553, - PSUEDONYM => 742, - TWITTER_USERNAME => 2002, - FB_ID => 2013, - YT_CHANNEL_ID => 2397, - IG_USERNAME => 2003, - } -} - #[cfg(test)] pub mod test { use super::*; diff --git a/src/ids/consts.rs b/src/ids/consts.rs new file mode 100644 index 0000000..3f061d1 --- /dev/null +++ b/src/ids/consts.rs @@ -0,0 +1,292 @@ +//! Various IDs for commonly used entities/properties on Wikidata. + +#![allow(clippy::unreadable_literal)] + +use super::*; + +macro_rules! qid_consts ( + { $($key:ident => $value:expr),+, } => { + $( + #[allow(missing_docs)] + pub const $key: Qid = Qid($value); + )+ + }; +); +macro_rules! pid_consts ( + { $($key:ident => $value:expr),+, } => { + $( + #[allow(missing_docs)] + pub const $key: Pid = Pid($value); + )+ + }; +); + +macro_rules! qid_unit_suffixes { + { $($key:ident => $value:expr),+, } => { + #[must_use] + pub(super) const fn unit_suffix(qid: Qid) -> Option<&'static str> { + $( + if qid.0 == ($key).0 { + Some($value) + } else + )+ + { + None + } + } + }; +} + +impl Qid { + /// If the Qid is a commonly used unit on Wikidata, get it as a unit suffix. + #[must_use] + pub const fn unit_suffix(self) -> Option<&'static str> { + consts::unit_suffix(self) + } +} + +qid_consts! { + EARTH => 2, + HUMAN => 5, + UNIT_OF_MEASUREMENT => 47574, + PHYSICAL_QUANTITY => 107715, + SI_BASE_UNIT => 223662, + LENGTH => 36253, + METRE => 11573, + YOTTAMETRE => 10543042, + ZETTAMETRE => 3277915, + EXAMETRE => 3277907, + PETAMETRE => 3277919, + TERAMETRE => 3267417, + GIGAMETRE => 854546, + MEGAMETRE => 1054140, + MYRIAMETRE => 1970718, + KILOMETRE => 828224, + HECTOMETRE => 844338, + DECAMETRE => 848856, + DECIMETRE => 200323, + CENTIMETRE => 174728, + MILLIMETRE => 174789, + MICROMETRE => 175821, + NANOMETRE => 178674, + PICOMETRE => 192274, + FEMTOMETRE => 208788, + ATTOMETRE => 6003257, + ZEPTOMETRE => 3270676, + YOCTOMETRE => 3221356, + PARSEC => 12129, + GIGAPARSEC => 14916719, + MEGAPARSEC => 3773454, + KILOPARSEC => 11929860, + ATTOPARSEC => 15784325, + LIGHT_YEAR => 531, + LIGHT_SECOND => 909315, + ASTRONOMICAL_UNIT => 1811, + MILE => 253276, + FOOT => 3710, + INCH => 218593, + THOU => 1165799, + AREA => 11500, + SQUARE_METRE => 25343, + SQUARE_KILOMETRE => 712226, + SQUARE_CENTIMETRE => 2489298, + SQUARE_MILLIMETRE => 2737347, + ARE => 185078, + HECTARE => 35852, + VOLUME => 39297, + CUBIC_METRE => 25517, + CUBIC_KILOMETRE => 4243638, + CUBIC_DECIMETRE => 2175964, + CUBIC_CENTIMETRE => 1022113, + CUBIC_MILLIMETRE => 3675550, + LITER => 11582, + HECTOLITER => 2029519, + DECALITER => 2637946, + CENTILITER => 1815100, + MILLILITER => 2332346, + MICROLITER => 2282891, + PICOLITER => 3902688, + FEMTOLITER => 3312063, + TIME => 11471, + FREQUENCY => 11652, + TIME_INTERVAL => 186081, + SECOND => 11574, + MILLISECOND => 723733, + MICROSECOND => 842015, + NANOSECOND => 838801, + FEMTOSECOND => 1777507, + ATTOSECOND => 2483628, + PICOSECOND => 3902709, + DAY => 573, + WEEK => 23387, + HOUR => 25235, + MINUTE => 7727, + MONTH => 5151, + ANNUM => 1092296, + YEAR => 577, + TWENTY_FOUR_HOUR_CLOCK => 216589, + HERTZ => 39369, + KILOHERTZ => 2143992, + MEGAHERTZ => 732707, + GIGAHERTZ => 3276763, + MASS => 11423, + KILOGRAM => 11570, + YOTTAGRAM => 613726, + ZETTAGRAM => 14754979, + EXAGRAM => 2655272, + PETAGRAM => 2612219, + TERAGRAM => 1770733, + GIGAGRAM => 2799294, + MEGAGRAM => 11776930, + MYRIAGRAM => 2151240, + HECTOGRAM => 1057069, + DECAGRAM => 6517513, + GRAM => 41803, + DECIGRAM => 1772386, + CENTIGRAM => 2691798, + MILLIGRAM => 3241121, + MICROGRAM => 1645498, + NANOGRAM => 2282906, + PICOGRAM => 3239557, + FEMTOGRAM => 1913097, + ATTOGRAM => 2438073, + ZEPTOGRAM => 6171168, + YOCTOGRAM => 6170164, + POUND => 100995, + DALTON => 483261, + DENSITY => 29539, + KILOGRAM_PER_CUBIC_METRE => 844211, + GRAM_PER_CUBIC_CENTIMETRE => 13147228, + CONCENTRATION => 3686031, + GRAM_PER_LITER => 834105, + MILLILITRE_PER_LITRE => 21075844, + MILLIGRAM_PER_CUBIC_METER => 21077820, + MOL_PER_KILOGRAM_OF_SOLVENT => 21064838, + MOL_PER_LITRE_OF_SOLUTION => 21064845, + MASS_FRACTION => 899138, + MOLE_FRACTION => 125264, + VOLUME_FRACTION => 909482, + PARTS_PER_MILLION => 21006887, + PART_PER_BILLION => 2055118, + MILLIGRAM_PER_KILOGRAM => 21091747, + GRAM_PER_KILOGRAM => 21061369, + TEMPERATURE => 11466, + DEGREE_CELSIUS => 25267, + KELVIN => 11579, + DEGREE_FAHRENHEIT => 42289, + RANKINE_SCALE => 207488, + PRESSURE => 39552, + ATMOSPHERE => 177974, + TECHNICAL_ATMOSPHERE => 909066, + BAR => 103510, + PASCAL => 44395, + MEGAPASCAL => 21062777, + KILOPASCAL => 21064807, + HECTOPASCAL => 5139563, + TORR => 185648, + MILLIMETER_OF_MERCURY => 6859652, + METRE_OF_WATER => 2042279, + CENTIMETRE_OF_WATER => 1247300, + MILLIMETRE_OF_WATER => 13479685, + HEAT_CAPACITY => 179388, + JOULE_PER_MOLE_KELVIN => 20966455, + THERMAL_CONDUCTIVITY => 487005, + WATT_PER_METRE_KELVIN => 1463969, + SPEED => 3711325, + KILOMETRE_PER_HOUR => 180154, + METRE_PER_SECOND => 182429, + KNOT => 128822, + KINEMATIC_VISCOSITY => 15106259, + STOKES => 1569733, + ELECTRICAL_CONDUCTIVITY => 4593291, + AMPERE_PER_VOLT_METRE => 20966435, + LUMINOSITY => 105902, + SOLAR_LUMINOSITY => 843877, + ENTHALPY => 161064, + JOULE_PER_MOLE => 13035094, + KILOJOULE_PER_MOLE => 752197, + KILOJOULE_PER_KILOGRAM => 21077849, + CURRENCY => 8142, + EURO => 4916, + CRORE => 1137675, + INFECTION => 166231, + DEGREE => 28390, + BUSINESS => 4830453, + FICTIONAL_HUMAN => 15632617, +} +// only include common ones +qid_unit_suffixes! { + METRE => " m", + KILOMETRE => " km", + CENTIMETRE => " cm", + MILLIMETRE => " mm", + SQUARE_METRE => " m²", + SQUARE_KILOMETRE => " km²", + SQUARE_CENTIMETRE => " cm²", + SQUARE_MILLIMETRE => " mm²", + CUBIC_METRE => " m³", + CUBIC_KILOMETRE => " km³", + CUBIC_CENTIMETRE => " cm³", + CUBIC_MILLIMETRE => " mm³", + GRAM => " g", + MILLIGRAM => " mg", + KILOGRAM_PER_CUBIC_METRE => " kg/m³", + GRAM_PER_CUBIC_CENTIMETRE => " g/cm³", + MILLILITRE_PER_LITRE => " ml/l", + MILLIGRAM_PER_CUBIC_METER => " mg/cm³", + PARTS_PER_MILLION => " ppm", + MILLIGRAM_PER_KILOGRAM => " mg/k", + GRAM_PER_KILOGRAM => " g/kg", + DEGREE_CELSIUS => " °C", + KELVIN => " °K", + DEGREE_FAHRENHEIT => " °F", + KILOMETRE_PER_HOUR => " km/h", + ASTRONOMICAL_UNIT => " AU", + DEGREE => "°", +} +pid_consts! { + INSTANCE_OF => 31, + REFERENCE_URL => 854, + LANGUAGE => 407, // language of work or name fully + TITLE => 1476, + AUTHOR => 50, + AUTHOR_NAME_STRING => 2093, + STATED_IN => 248, + HEIGHT => 2048, + DATE_OF_BIRTH => 569, + DATE_OF_DEATH => 570, + NET_WORTH => 2218, + SPOUSE => 26, + EDUCATED_AT => 69, + NUMBER_OF_CHILDREN => 1971, + AWARD_RECEIVED => 166, + OFFICIAL_NAME => 1448, + EMAIL => 968, + SIBLING => 3373, + NOMINATED_FOR => 1411, + PHONE => 1329, + EMPLOYEES => 1128, + INCEPTION => 571, + CEO => 169, + TICKER_SYMBOL => 249, + LEGAL_FORM => 1454, + FOUNDED_BY => 112, + SEX_OR_GENDER => 21, + CITIZENSHIP => 27, + PLACE_OF_BIRTH => 19, + PLACE_OF_DEATH => 570, + FATHER => 22, + UNMARRIED_PARTNER => 451, + CHILD => 40, + MOTHER => 25, + EYE_COLOR => 1340, + HAIR_COLOR => 1884, + HANDEDNESS => 552, + MILITARY_RANK => 410, + PRONOUN => 6553, + PSUEDONYM => 742, + TWITTER_USERNAME => 2002, + FB_ID => 2013, + YT_CHANNEL_ID => 2397, + IG_USERNAME => 2003, +}