quantify 0.2.0
quantify: ^0.2.0 copied to clipboard
A type-safe units of measurement library for Dart, providing elegant syntax for unit conversions with good precision, optimal performance, and configurable output formatting.
Changelog #
All notable changes to the quantify package will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.2.0 #
2025-06-16
Added #
- New SI Base Quantity Types (completing all 7 SI base units):
- Mass:
Massclass andMassUnitenum (kg,g,mg,t(tonne),lb,oz,st(stone),slug).
- Amount of Substance (Molar Amount):
MolarAmountclass andMolarUnitenum (mol,mmol,µmol,nmol,pmol,kmol).
- Electric Current:
Currentclass andCurrentUnitenum (A,mA,µA,nA,kA).
- Luminous Intensity:
LuminousIntensityclass andLuminousIntensityUnitenum (cd,mcd,kcd).
- Mass:
0.1.0 #
2025-06-12
Added #
- Initial Release of
quantifyv0.1.0 - Core Functionality:
- Type-safe
Quantitybase class for representing physical quantities with a value and a unit. Unitinterface for defining conversion factors and symbols.- Immutable
Quantityobjects. doubleprecision for quantity values.- Elegant API with extension methods on
numfor quantity creation (e.g.,10.m,20.celsius). - Extension methods on
Quantityfor easy value retrieval in target units (e.g.,length.inKm) and for obtaining newQuantityobjects in target units (e.g.,length.asKm). - Configurable
toString()method onQuantityobjects supporting:- Conversion to a
targetUnitbefore formatting. - Fixed
fractionDigits. - Option to
showUnitSymbol. - Custom
unitSymbolSeparator. - Locale-aware number formatting via
localeparameter (usingintlpackage). - Full control over number formatting via
numberFormatparameter (usingintlpackage).
- Conversion to a
- Arithmetic operations (
+,-,*by scalar,/by scalar) for most quantities. - Specialized arithmetic for
Temperature(differenceT - Treturnsdouble, ratioT / Treturnsdouble). Comparableinterface implementation for sorting quantities by magnitude.==operator override for value and unit equality.
- Type-safe
- Supported Quantity Types (with units and extensions):
- Length: Meter (m), Kilometer (km), Centimeter (cm), Millimeter (mm), Inch (in), Foot (ft), Yard (yd), Mile (mi), Nautical Mile (nmi).
- Time: Second (s), Millisecond (ms), Minute (min), Hour (h), Day (d).
- Temperature: Kelvin (K), Celsius (°C), Fahrenheit (°F). Handles affine conversions correctly.
- Pressure: Pascal (Pa), Atmosphere (atm), Bar (bar), PSI (psi), Torr, mmHg, inHg, kPa, hPa, mbar, cmH₂O, inH₂O.