# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.89"
name = "decimal-scaled"
version = "0.5.0"
build = false
include = [
    "src/**",
    "/README.md",
    "/CHANGELOG.md",
    "/CONTRIBUTORS.md",
    "/LICENSE*",
    "/LICENSES/**",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Const-generic base-10 fixed-point decimals (D18/D38/D76/D153/D307 and the half-width tiers up to D1232) with integer-only transcendentals correctly rounded to within 0.5 ULP — exact at the type's last representable place. Deterministic across every platform; no_std-friendly."
homepage = "https://github.com/mootable/decimal-scaled"
documentation = "https://mootable.github.io/decimal-scaled/"
readme = "README.md"
keywords = [
    "decimal",
    "fixed-point",
    "deterministic",
    "no-std",
    "precision",
]
categories = [
    "mathematics",
    "no-std",
    "science",
    "finance",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/mootable/decimal-scaled"

[package.metadata.docs.rs]
features = [
    "std",
    "serde",
    "strict",
    "macros",
    "wide",
    "x-wide",
    "xx-wide",
    "dyn",
]
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
_wide-support = []
alloc = []
bench-alt = []
cross-scale-ops = []
d115 = ["_wide-support"]
d1232 = ["_wide-support"]
d153 = ["_wide-support"]
d230 = ["_wide-support"]
d307 = ["_wide-support"]
d462 = ["_wide-support"]
d57 = ["_wide-support"]
d616 = ["_wide-support"]
d76 = ["_wide-support"]
d924 = ["_wide-support"]
default = [
    "std",
    "serde",
    "strict",
    "exact-scratch",
]
dyn = ["alloc"]
exact-scratch = []
exact-scratch-nightly = ["exact-scratch"]
experimental-floats = []
fast = ["std"]
macros = ["dep:decimal_scaled_macros"]
perf-trace = ["dep:tracing"]
rounding-ceiling = []
rounding-floor = []
rounding-half-away-from-zero = []
rounding-half-toward-zero = []
rounding-trunc = []
serde = ["dep:serde"]
std = [
    "alloc",
    "exact-scratch",
]
strict = []
wide = [
    "d57",
    "d76",
    "d115",
    "d153",
    "d230",
    "d307",
]
x-wide = [
    "wide",
    "d462",
    "d616",
]
xx-wide = [
    "x-wide",
    "d924",
    "d1232",
]

[lib]
name = "decimal_scaled"
path = "src/lib.rs"

[dependencies.decimal_scaled_macros]
version = "0.5.0"
optional = true
default-features = false

[dependencies.num-traits]
version = "0.2"
default-features = false

[dependencies.serde]
version = "1"
features = ["derive"]
optional = true

[dependencies.tracing]
version = "0.1"
features = ["std"]
optional = true
default-features = false

[dev-dependencies.bigdecimal]
version = "0.4"

[dev-dependencies.bnum]
version = "0.14"
default-features = false

[dev-dependencies.core_affinity]
version = "0.8"

[dev-dependencies.criterion]
version = "0.8"
features = ["cargo_bench_support"]
default-features = false

[dev-dependencies.dashu-float]
version = "0.4"

[dev-dependencies.dashu-int]
version = "0.4"
features = ["std"]
default-features = false

[dev-dependencies.decimal-rs]
version = "0.1"

[dev-dependencies.fastnum]
version = "0.7"
features = ["std"]
default-features = false

[dev-dependencies.fixed]
version = "1"

[dev-dependencies.g_math]
version = "0.4"

[dev-dependencies.i256]
version = "0.2"
default-features = false

[dev-dependencies.plotters]
version = "0.3"
features = [
    "bitmap_backend",
    "bitmap_encoder",
    "line_series",
    "ttf",
]
default-features = false

[dev-dependencies.postcard]
version = "1"
features = ["alloc"]
default-features = false

[dev-dependencies.ruint]
version = "1"
default-features = false

[dev-dependencies.rust_decimal]
version = "1"
features = ["maths"]
default-features = false

[dev-dependencies.scientific]
version = "0.5"

[dev-dependencies.serde_json]
version = "1"

[dev-dependencies.tracing-chrome]
version = "0.7"

[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["std"]
default-features = false

[lints.clippy]
assertions_on_constants = "allow"
bool_assert_comparison = "allow"
bool_to_int_with_if = "allow"
cast_lossless = "allow"
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
collapsible_if = "allow"
comparison_chain = "allow"
doc_lazy_continuation = "allow"
doc_markdown = "allow"
empty_line_after_outer_attr = "allow"
float_cmp = "allow"
format_push_string = "allow"
inline_always = "allow"
items_after_statements = "allow"
manual_assert = "allow"
manual_let_else = "allow"
many_single_char_names = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
nonminimal_bool = "allow"
result_unit_err = "allow"
return_self_not_must_use = "allow"
semicolon_if_nothing_returned = "allow"
should_panic_without_expect = "allow"
similar_names = "allow"
too_many_lines = "allow"
uninlined_format_args = "allow"
unreadable_literal = "allow"

[lints.rust]
dead_code = "allow"
unsafe_code = "forbid"
unused_variables = "allow"

[profile.release]
debug = 2
