dinero 0.0.11

Dinero lets you express monetary values. You can perform mutations, conversions, comparisons, format them extensively, and overall make money manipulation in your application easier and safer.
Documentation

📦 Install

$ cargo add dinero

⚡️ Quick start

Dinero objects are minimal. The API is heavily inspired by dinero.js unless there is a more suitable Rust way to implement things.

use dinero::{api::add, currencies::USD, format::to_unit, Dinero};

// Create a Dinero object of value 8.5 USD (the default scale for USD is 2)
let d1 = Dinero::new(850, USD, None);
// Create a Dinero object of value 5 USD with a custom scale 3
let d2 = Dinero::new(5000, USD, Some(3));

// Add the 2 Dineros, the value is stored in the result Dinero without modifying d1 and d2
let result = add(&d1, &d2); // Similar API as Dinero.js

let result = d1 + d2; // Or you can use the standard operators

match result {
  Ok(value) => println!("{} USD", to_unit(value, None, None)), // 13.5 USD
  Err(_) => println!("Error adding d1+d2"),
}

🦀 Disclaimer

I'm using this project to learn about Rust. And I'm working my way through the language and the ecosystem.

Consider the current version of Dinero unstable. There will definitely be breaking changes.

📜 License

MIT