rust_decimal breaking changes

cargo

25 curated breaking changes across major versions of rust_decimal. Use this as a migration checklist before bumping dependencies.

25
changes
Breaking changes by transition
  • 1.16.0 \u2192 1.17.0breaking

    Fixes panic when display precision was specified greater than

  • 1.16.0 \u2192 1.17.0breaking

    Fixes an issue in `round_sf` whereby integral values that started with a 0 or 1 would output incorrect rounded

  • 1.16.0 \u2192 1.17.0breaking

    Adds `from_f32_retain` and `from_f64_retain` functions which allow parsing a floating point number and retaining any

  • 1.16.0 \u2192 1.17.0breaking

    Binds `deserialize` so that invalid scale values cannot be set. This may be a breaking change for some users

  • 1.12.4 \u2192 1.13.0breaking

    Small improvements to `from_scientific`. It now supports a wider range of values as well has slightly faster

  • 1.12.4 \u2192 1.13.0breaking

    `powi`, `checked_powi` - When the exponent is a signed integer.

  • 1.12.4 \u2192 1.13.0breaking

    `powu`, `checked_powu` - When the exponent is an unsigned integer.

  • 1.12.4 \u2192 1.13.0breaking

    `powf`, `checked_powf` - When the exponent is a floating point number. Please note, numbers with a fractional

  • 1.12.4 \u2192 1.13.0breaking

    `powd`, `checked_powd` - When the exponent is a `Decimal`. Please note, numbers with a fractional component will

  • 1.12.4 \u2192 1.13.0breaking

    `#[must_use]` added to functions to provide additional compiler hints.

  • 1.12.4 \u2192 1.13.0breaking

    `try_from_i128_with_scale` function added to safely handle `i128` overflow errors.

  • 1.12.4 \u2192 1.13.0breaking

    New `c-repr` feature added which will ensure that `#[repr(C)]` is used on the `Decimal` type.

  • 1.12.4 \u2192 1.13.0renamed

    Support for negative and decimal `pow` functions. This is *breaking* since `powi(u64)` has been renamed

  • 1.11.1 \u2192 1.12.0breaking

    `add` - up to 2.2x faster

  • 1.11.1 \u2192 1.12.0breaking

    `div` - up to 428x faster

  • 1.11.1 \u2192 1.12.0breaking

    `mul` - up to 1.8x faster

  • 1.11.1 \u2192 1.12.0breaking

    `rem` - up to 1.08x faster

  • 1.11.1 \u2192 1.12.0breaking

    `sub` - up to 2.5x faster

  • 1.11.1 \u2192 1.12.0breaking

    Fixes overflow bug with `sqrt` when using the smallest possible representable

  • 1.11.1 \u2192 1.12.0breaking

    Some minor optimizations in the `maths` feature. Future work will involve speeding up this feature by keeping

  • 1.11.1 \u2192 1.12.0breaking

    Some internal housekeeping was made to help make way for version 2.0 improvements.

  • 1.11.1 \u2192 1.12.0breaking

    `-0` now gets corrected to `0`. During operation rewrite I needed to consider operations such as `-0 * 2` - in cases

  • 1.11.1 \u2192 1.12.0breaking

    Small breaking change by renaming `is_negative` to `negative` in `UnpackedDecimal`.

  • 1.11.1 \u2192 1.12.0deprecated

    Added associated constants for `MIN`, `MAX` and `ZERO`. Deprecated `min_value()` and `max_value()` in favor of these

  • 1.11.1 \u2192 1.12.0removed

    Remove unnecessary `String` allocation when parsing a scientific number format.

API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/breaking/cargo/rust_decimal
rust_decimal breaking changes — Cargo migration guide | DepScope