pump_up_the_volume 1.0.0 copy "pump_up_the_volume: ^1.0.0" to clipboard
pump_up_the_volume: ^1.0.0 copied to clipboard

Pump Up The Volume ==> Visionary Software Solutions Volume me_sure_meant API.

Visionary Software Solutions Measurement API: fluent, joyful measurement...FOR SCIENCE! #

Meant to fight the odious practice witnessed in many code bases of using only integers/doubles for measurements/units and "knowing contextually" that a number corresponds to a measurement in litres... (which may be converted in the body of a method).

The goal of this API is to enable code written about measurements to be clear, expressive, and straightforward to reason about and understand by baking behaviors (such as well known conversion factors and arithmetic) directly into types.

Features #

  • Builds on me_sure_meant, providing support for Volume (Liquid).
  • Common SI units.
  • Fluent definition, unit conversion, and addition/subtraction.
  • Uncertainty in measurement with propagation through calculations.
  • Framework pieces to easily extend and evolve, replacing implementations or adding new features
  • Full SI prefix support for all your yottalitre and quectolitre needs
  • Extension Methods to make defining a quantity as easy as writing 4.gallons() + 32.fluidOunces() + 2.pints() - 10.quarts() + 6.shots() - 4.cups();

First Class (No, really, they're dedicated classes!) support for Volume (Liquid) measurements: #

  • SI: Litres
  • Imperial: ImperialFluidOunces, Gills, ImperialPints, ImperialQuarts, ImperialGallons
  • US Customary: Teaspoons, Tablespoons, USFluidOunces, Shots, Cups, USPints, USQuarts, USGallons

Also note that the package is built using Best Practice software engineering principles. The code is meant to be as SOLID as possible (thanks Uncle Bob!) with Stable Abstractions that work interchangeably (don't like Crude or BasicUncertainty Measurements? Roll your own!). DECORATOR for SI MetricPrefix was an obviously nice win I'm surprised I haven't seen done more. The library has test coverage and planned seams for modularization once the basics are proven out.

Getting started #

Dependency: me_sure_meant library. This package is "platform"/foundational. It should work in any Dart 3+ runtime environment.

Usage #

Check out the demos in example/pump_up_the_volume_example.dart

Here's a teaser #

final shortChanged = USPints.fromNum(2);
final biggerDrink = ImperialPints.fromNum(2);
assert(biggerDrink > shortChanged);

Additional information #

This package is Free and Open Source Software by Visionary Software Solutions. Alternative licensing is available, on a sliding scale case-by-case basis. (Contact nico at visionary.software)

1
likes
150
points
26
downloads

Publisher

verified publishervisionary.software

Weekly Downloads

Pump Up The Volume ==> Visionary Software Solutions Volume me_sure_meant API.

Repository

Documentation

API reference

License

GPL-3.0 (license)

Dependencies

me_sure_meant

More

Packages that depend on pump_up_the_volume