dinero

Crates.iodinero
lib.rsdinero
version0.0.11
sourcesrc
created_at2022-10-13 18:14:41.214414
updated_at2022-11-28 10:25:44.266339
descriptionDinero 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.
homepagehttps://github.com/raed667/dinero
repositoryhttps://github.com/raed667/dinero
max_upload_size
id687345
size99,581
Raed (raed667)

documentation

https://docs.rs/dinero

README

Dinero-rust

Stability: alpha Crates.io Crates.io Crates.io

Dinero is a Rust port of Dinero.js
Dinero lets you create, calculate, and format money in Rust.
docs.rs/dinero


📦 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

Commit count: 35

cargo fmt