Crate stoik

source ·
Expand description

§Stoik

Stoicimetic utilities written in rust.

To see an example how this is used in the real world, look at the CLI

§Example use

use stoik::formula::Molecule;
use stoik::StoikError;

let formula = "Rh2(SO4)3";
match Molecule::from_formula(formula) {
    Err(e) => match e {
        StoikError::InvalidToken(loc) => {
            println!("{}",
                loc.format_msg(formula, "Malformed formula", "Illegal token")
            )
        }
        StoikError::NumberFirst(loc) => println!("{}",
            loc.format_msg(
                formula,
                "Malformed formula",
                "Compound groups cannot start\nwith numbers",
            )
        ),
        StoikError::UnpairedParenthesis(loc) => {
            println!("{}",
                loc.format_msg(formula, "Malformed formula", "Unpaired parenthesis")
            )
        }
        StoikError::UnpairedBracket(loc) => {
            println!("{}",
                loc.format_msg(formula, "Malformed formula", "Unpaired bracket")
            )
        }
        e => println!("{e}"),
    },
    Ok(mol) => {
        println!("{formula} contains:")
        //...
    }
}

Modules§

  • This module is the main module for parsing chemical equations

Enums§