From ee083cda006d9c4f32d310833ad9a41859b10216 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Tue, 7 May 2024 13:36:36 -0400 Subject: [PATCH] xo-unit: refactor: rename dim -> dimension (but provide typealias) --- include/xo/unit/basis_unit.hpp | 7 ++++--- include/xo/unit/basis_unit_abbrev.hpp | 28 +++++++++++++-------------- include/xo/unit/dimension.hpp | 18 +++++++++-------- include/xo/unit/native_unit.hpp | 16 +++++++-------- 4 files changed, 36 insertions(+), 33 deletions(-) diff --git a/include/xo/unit/basis_unit.hpp b/include/xo/unit/basis_unit.hpp index ed0b0a54..a053f931 100644 --- a/include/xo/unit/basis_unit.hpp +++ b/include/xo/unit/basis_unit.hpp @@ -16,12 +16,13 @@ namespace xo { struct basis_unit { public: constexpr basis_unit() = default; - constexpr basis_unit(dim native_dim, const scalefactor_ratio_type & scalefactor) + constexpr basis_unit(dimension native_dim, + const scalefactor_ratio_type & scalefactor) : native_dim_{native_dim}, scalefactor_{scalefactor} {} - constexpr dim native_dim() const { return native_dim_; } + constexpr dimension native_dim() const { return native_dim_; } constexpr const scalefactor_ratio_type & scalefactor() const { return scalefactor_; } constexpr basis_unit2_abbrev_type abbrev() const { @@ -33,7 +34,7 @@ namespace xo { public: /* need public members so that a basis_unit instance can be a non-type template parameter (a structural type) */ /** @brief identifies a native unit, e.g. time (in seconds) **/ - dim native_dim_ = dim::invalid; + dimension native_dim_ = dimension::invalid; /** @brief this unit defined as multiple scalefactor times native unit **/ scalefactor_ratio_type scalefactor_; }; diff --git a/include/xo/unit/basis_unit_abbrev.hpp b/include/xo/unit/basis_unit_abbrev.hpp index f6e1dfd2..98998c1a 100644 --- a/include/xo/unit/basis_unit_abbrev.hpp +++ b/include/xo/unit/basis_unit_abbrev.hpp @@ -18,7 +18,7 @@ namespace xo { static constexpr basis_unit2_abbrev_type fallback_unit_abbrev(const scalefactor_ratio_type & scalefactor, - dim native_dim) + dimension native_dim) { /* e.g. unit of '1000 grams' will have abbrev '1000g' in absence * of a specialization for scaled_native_unit_abbrev @@ -65,7 +65,7 @@ namespace xo { } } - return fallback_unit_abbrev(scalefactor, dim::mass); + return fallback_unit_abbrev(scalefactor, dimension::mass); } // ----- units for dim::distance ----- @@ -104,7 +104,7 @@ namespace xo { } } - return fallback_unit_abbrev(scalefactor, dim::distance); + return fallback_unit_abbrev(scalefactor, dimension::distance); } // ----- units for dim::time ----- @@ -151,7 +151,7 @@ namespace xo { } } - return fallback_unit_abbrev(scalefactor, dim::time); + return fallback_unit_abbrev(scalefactor, dimension::time); } // ----- units for dim::currency ----- @@ -166,7 +166,7 @@ namespace xo { } } - return fallback_unit_abbrev(scalefactor, dim::currency); + return fallback_unit_abbrev(scalefactor, dimension::currency); } // ----- units for dim::price ----- @@ -181,29 +181,29 @@ namespace xo { } } - return fallback_unit_abbrev(scalefactor, dim::price); + return fallback_unit_abbrev(scalefactor, dimension::price); } // ----- basis_unit2_abbrev ----- static constexpr basis_unit2_abbrev_type - basis_unit2_abbrev(dim native_dim, + basis_unit2_abbrev(dimension native_dim, const scalefactor_ratio_type & scalefactor) { switch(native_dim) { - case dim::mass: + case dimension::mass: return mass_unit2_abbrev(scalefactor); - case dim::distance: + case dimension::distance: return distance_unit2_abbrev(scalefactor); - case dim::time: + case dimension::time: return time_unit2_abbrev(scalefactor); - case dim::currency: + case dimension::currency: return currency_unit2_abbrev(scalefactor); - case dim::price: + case dimension::price: return price_unit2_abbrev(scalefactor); - case dim::invalid: - case dim::n_dim: + case dimension::invalid: + case dimension::n_dim: return basis_unit2_abbrev_type(); break; } diff --git a/include/xo/unit/dimension.hpp b/include/xo/unit/dimension.hpp index 63bf2bfb..0f056678 100644 --- a/include/xo/unit/dimension.hpp +++ b/include/xo/unit/dimension.hpp @@ -6,7 +6,7 @@ namespace xo { namespace qty { - enum class dim { + enum class dimension { invalid = -1, /** weight. native unit = 1 gram **/ @@ -29,21 +29,23 @@ namespace xo { n_dim }; + using dim = dimension; + inline const char * - dim2str(dim x) + dim2str(dimension x) { switch(x) { - case dim::mass: return "mass"; - case dim::distance: return "distance"; - case dim::time: return "time"; - case dim::currency: return "currency"; - case dim::price: return "price"; + case dimension::mass: return "mass"; + case dimension::distance: return "distance"; + case dimension::time: return "time"; + case dimension::currency: return "currency"; + case dimension::price: return "price"; default: break; } return "?dim"; } - static constexpr std::size_t n_dim = static_cast(dim::n_dim); + static constexpr std::size_t n_dim = static_cast(dimension::n_dim); } /*namespace qty*/ } /*namespace xo*/ diff --git a/include/xo/unit/native_unit.hpp b/include/xo/unit/native_unit.hpp index ac003ef1..e6dded14 100644 --- a/include/xo/unit/native_unit.hpp +++ b/include/xo/unit/native_unit.hpp @@ -21,26 +21,26 @@ namespace xo { **/ struct native_unit { public: - constexpr native_unit(dim native_dim, + constexpr native_unit(dimension native_dim, const native_unit2_abbrev_type & abbrev_str) : native_dim_{native_dim}, abbrev_str_{abbrev_str} {} - constexpr dim native_dim() const { return native_dim_; } + constexpr dimension native_dim() const { return native_dim_; } constexpr const native_unit2_abbrev_type & abbrev_str() const { return abbrev_str_; } private: - dim native_dim_; + dimension native_dim_; native_unit2_abbrev_type abbrev_str_; }; static constexpr native_unit native_unit2_v[n_dim] = { - native_unit(dim::mass, native_unit2_abbrev_type::from_chars("g")), - native_unit(dim::distance, native_unit2_abbrev_type::from_chars("m")), - native_unit(dim::time, native_unit2_abbrev_type::from_chars("s")), - native_unit(dim::currency, native_unit2_abbrev_type::from_chars("ccy")), - native_unit(dim::price, native_unit2_abbrev_type::from_chars("px")), + native_unit(dimension::mass, native_unit2_abbrev_type::from_chars("g")), + native_unit(dimension::distance, native_unit2_abbrev_type::from_chars("m")), + native_unit(dimension::time, native_unit2_abbrev_type::from_chars("s")), + native_unit(dimension::currency, native_unit2_abbrev_type::from_chars("ccy")), + native_unit(dimension::price, native_unit2_abbrev_type::from_chars("px")), }; } /*namespace qty*/