# Changelog This changelog format is based on the spec described on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) with the modification of the `YYYY-MM-DD` date format to `DD/MM/YYYY`. This project adheres to [Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0.html). ## [v0.4.0] - 04/08/2024 ### Added - Added `serde` Feature for Serialization and Deserialization ([#3](https://github.com/Redfire75369/break-infinity.rs/pull/3)) - Added `Default` Implementation ([#4](https://github.com/Redfire75369/break-infinity.rs/pull/5)) - Added Constants, such as `ZERO`, `ONE`, `NEGATIVE_ONE` and `NAN` - Added `full-range` Feature for Exponent Support up to 1.79e308 - Added `Decimal::pow10`, for More Efficient Powers of 10 - Added `FromStr` Implementation ### Changed - Changed the Default Exponent Limit to 9e15 instead of 1.79e308 - Fixed Bugs in `Decimal::cbrt` and `Decimal::pow` - Improved String Creation ### Removed - Removed Many Method Aliases - Removed `From<&str>` Implementation - Removed `rand` Depedency ## [v0.3.0] - 05/10/2021 ### Added - `{Add,Sub,Mul,Div}Assign` operators - `From` for a lot of number types - This allows for conversions like `let decimal: Decimal = 1e308.into();` ### Changed - Changed the `Display` implementation to accept precision arguments - The default amount for precision is 16. - Cleaned up a lot of functions, that had little to no use - The library itself no longer shows any clippy warnings - The tests do due to not using `assert!` instead of `assert_eq!` in compare tests - Moved functions about instantiation into the Decimal implementation - `CACHED_POWERS` are now a lazy static value - Operator functions to be implemented via their value instead of references - Operators on references now simply dereference and perform the operation - Cleaned up changelog a little ### Fixed - `to_exponential()` causes loop for precisions > 2 - `to_fixed()` causes panic for values without significant digits (like 10.0) - Sort of fixed representation of large numbers (mainly the last decimal test) by multiplying with a large value, then rounding and then dividing again - It's not a pretty fix, but as the original library states: It's about speed, not precision. ### Removed - The dedicated `to_string()` function in favour of the one supplied by `Display` - `Ord` implementation in favour of `PartialOrd` - `once_cell` is no longer needed and has been replaced by `lazy_static` ## [v0.2.1] - 06/03/2021 ### Added - Comparison Operators - Negative Operator - Integration Tests ### Changed - Made Methods Public ## [v0.2.0] - 27/02/2021 ### Added - Binary Operators for Addition, Subtraction, Multiplication and Division ### Removed - Functions for Addition, Subtraction, Multiplication and Division ## [v0.1.0] - 19/12/2020 ### Added - Decimal struct - Function implementations for Decimal - Static functions [v0.4.0]: https://github.com/Redfire75369/break-infinity.rs/compare/d4b0a956f34f8c1d96865227f444ea2e9870f350..master [v0.3.0]: https://github.com/Redfire75369/break-infinity.rs/compare/f1fc9abefc158fff513dc9c5796947824e7abea2..d4b0a956f34f8c1d96865227f444ea2e9870f350 [v0.2.1]: https://github.com/Redfire75369/break-infinity.rs/compare/087957eea4b35f8c6cfd3d6aba07c999e52a3dca..f1fc9abefc158fff513dc9c5796947824e7abea2 [v0.2.0]: https://github.com/Redfire75369/break-infinity.rs/compare/05b2c2e215296715d75fee23a018a3904e0808e4..087957eea4b35f8c6cfd3d6aba07c999e52a3dca [v0.1.0]: https://github.com/Redfire75369/break-infinity.rs/tree/05b2c2e215296715d75fee23a018a3904e0808e4