fling_units 0.4.1 copy "fling_units: ^0.4.1" to clipboard
fling_units: ^0.4.1 copied to clipboard

outdated

Dependency-free, type-safe Dart unit conversion library. Decouple specific unit types you need to work with from the rest of your code.

A type safe Dart library for unit conversion. Pass around fully abstracted measurements safely and easily to keep your code simple!

Usage #

Create an instance of the dimension type you want to measure:

FlingUnits.Distance distanceToSeattle = FlingUnits.Distance.kilometers(246);
FlingUnits.Distance distanceToTheMoon = FlingUnits.Distance(miles: 238900, feet: 42, inches: 6.3);

Convert to any other measurement type within that dimension:

double distanceToSeattleInMiles = distanceToSeattle.miles;
double distanceToSeattleInInches = distanceToSeattle.inches;

Perform basic arithmetic:

FlingUnits.Distance distanceToSeattleAndBack = distanceToSeattle * 2;
FlingUnits.Distance distanceToTheMoon = distanceToUpperAtmosphere + distanceFromAtmosphereToMoon;
FlingUnits.Distance distanceToTheEndsOfTheUniverse = FlingUnits.Distance.infinity();
bool useTheCar = distanceToTravel >= FlingUnits.Distance.miles(1.5);

Built-in ordering:

[Distance.zero(), Distance.infinity(), Distance.meters(3), Distance.feet(3), Distance.meters(-2)].sort();
// produces [Distance.meters(-2), Distance.zero(), Distance.feet(3), Distance.meters(3), Distance.infinity()]

Abstract away the specific units your code needs by passing around the encapsulated types. It doesn't matter which units each portion of your code requires, they can be combined seamlessly:

FlingUnits.Distance computeTotalDistanceWithWiggleRoom(final FlingUnits.Distance targetDistance) {
  return targetDistance + FlingUnits.Distance.meters(3.0);
}

Ensure type safety:

var nonsense = distanceToSeattle + temperatureInNewYork;  // won't compile!

Use precision to make sure you express yourself correctly:

var myHeight = Distance.meters(1.5, precision: Precision(2));
var myHeightInInches = myHeight.inches;  // 59.0

Supported Features #

Operations #

With few exceptions (due to the nature of those measurements), all measurements support:

  • customizable precision for each measurement
  • implement Comparable for built-in ordering among similar measurements
  • compare two similar measurements (>, <, ==, !=, >=, <=)
  • add or subtract two similar measurements (+, -)
  • multiply or divide measurements by a scalar (*, /)
  • negate measurements (unary -)

Distance Units #

Metric:

  • millimeters
  • centimeters
  • decimeters
  • meters
  • dekameters
  • hectometers
  • kilometers

Imperial:

  • inches
  • feet
  • yards
  • miles

Nautical:

  • nautical miles

Area Units #

Metric:

  • square millimeters
  • square centimeters
  • square meters
  • square kilometers

Imperial:

  • square inches
  • square feet
  • square yards
  • square miles

Volume Units #

Metric:

  • milliliters
  • centiliters
  • deciliters
  • liters
  • dekaliters
  • hectoliters
  • kiloliters
  • cubic meter

Imperial:

  • teaspoon
  • tablespoon
  • fluid ounce
  • cup
  • pint
  • quart
  • gallon
  • cubic foot
  • cubic inch

US:

  • teaspoon
  • tablespoon
  • fluid ounce
  • cup
  • pint
  • quart
  • gallon
  • legal cup

Temperature Units #

  • kelvin
  • celcius
  • fahrenheit
10
likes
30
pub points
76%
popularity

Publisher

verified publishergelbermungo.xyz

Dependency-free, type-safe Dart unit conversion library. Decouple specific unit types you need to work with from the rest of your code.

Homepage
Repository
View/report issues

License

BSD-3-Clause (LICENSE)

More

Packages that depend on fling_units