# break-infinity.rs A port of [Patashu's break_infinity.js](https://github.com/Patashu/break_infinity.js) to Rust. It has the `Decimal` struct which is able to reach a maximum value of 1e9e15 instead of `f64`'s maximum of 1.79e308. ## Installation You can install this package via Cargo by adding these lines to your `Cargo.toml`. ```toml [dependencies] break_infinity = "0.3.0" # ... ``` ## Features - `full-range`: Increases maximum value to 1e1.79e308. Reduced accuracy above 1e9e15 - `serde`: Enables Serialization and Deserialization with Serde ## Usage This library allows simple creation of `Decimal`'s through many different methods. ```rust use break_infinity::Decimal; fn main() { let x = Decimal::new(123.4567); let y = Decimal::from_str("123456.7e-3").expect("Failed to parse Decimal"); } ``` Methods that return a `Decimal` can also be chained ```rust use break_infinity as bi; fn main() { let short = ((x / &y + &z) * &Decimal::new(9.0)).floor(); let long = x.ceil() .exp() .log10(); } ``` For a complete list of functions and methods, refer to the [docs](https://docs.rs/break_infinity). ## Acknowledgements Patashu and Razenpok for creating the original `break_infinity.js` that this is based off of.