Skip to main content

Crate use_molar_mass

Crate use_molar_mass 

Source
Expand description

§use-molar-mass

Molar mass primitives for formula-level chemistry calculations.
Small validated values and lookup-backed calculations built on RustUse formula and atomic-mass crates.

§Surface

ItemPurpose
MolarMassPositive finite molar mass value with a display unit
MolarMassUnitSupported molar-mass units, currently g/mol and kg/mol
AtomicMassEntryValidated element symbol and atomic mass pair
AtomicMassLookupCaller-controlled lookup table for formula calculations
MolarMassCalculationFormula plus lookup calculation helper
FormulaMolarMassCalculated molar mass with per-element contributions
ElementMassContributionAtomic mass, count, and contribution for one element

§Example

use std::error::Error;

use use_chemical_formula::ChemicalFormula;
use use_molar_mass::{AtomicMassEntry, AtomicMassLookup, MolarMassCalculation};

fn main() -> Result<(), Box<dyn Error>> {
    let formula = ChemicalFormula::parse("H2O")?;
    let lookup = AtomicMassLookup::from_entries([
        AtomicMassEntry::new("H", 1.008)?,
        AtomicMassEntry::new("O", 15.999)?,
    ]);

    let calculation = MolarMassCalculation::new(formula, lookup);
    let water = calculation.calculate()?;

    assert_eq!(water.molar_mass().to_string(), "18.015 g/mol");
    assert_eq!(water.contributions().as_slice()[0].to_string(), "H: 2 × 1.008 = 2.016 g/mol");

    Ok(())
}

§Standard atomic mass helper

Use with_standard_atomic_masses() when the existing RustUse atomic-mass table is the desired data source.

use std::error::Error;

use use_chemical_formula::ChemicalFormula;
use use_molar_mass::MolarMassCalculation;

fn main() -> Result<(), Box<dyn Error>> {
    let water = MolarMassCalculation::with_standard_atomic_masses(
        ChemicalFormula::parse("H2O")?,
    )?
    .calculate()?;

    assert!((water.molar_mass().value() - 18.015).abs() < 0.001);

    Ok(())
}

§Scope

use-molar-mass calculates formula molar masses from element counts and atomic masses. It does not balance reactions, model isotopic abundance, fetch external reference data, or provide a general dimensional-analysis system.

§Installation

[dependencies]
use-molar-mass = "0.1.0"

For a single umbrella dependency with the chemistry prelude, use use-chemistry. Formula molar-mass values and lookup-backed calculations.

Structs§

AtomicMassEntry
A validated element symbol and atomic mass pair.
AtomicMassLookup
A caller-controlled element atomic-mass lookup table.
ElementMassContribution
A per-element contribution to a formula molar mass.
FormulaMolarMass
A formula with its calculated molar mass and element contributions.
MassContributionSet
Ordered per-element molar-mass contributions.
MolarMass
A positive finite molar mass value with an associated display unit.
MolarMassCalculation
A formula and atomic-mass lookup ready for molar-mass calculation.

Enums§

MolarMassUnit
A display unit for molar mass values.
MolarMassValidationError
Errors returned while constructing or calculating molar mass values.