Dinero is a Rust port of Dinero.js
Dinero lets you create, calculate, and format money in Rust.
docs.rs/dinero
$ cargo add dinero
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"),
}
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.