# 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 = "2021"
rust-version = "1.87"
name = "rubo4e"
version = "0.4.0"
build = false
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Rust implementation of the BO4E energy-market data standard"
readme = "README.md"
keywords = [
    "bo4e",
    "energy",
    "electricity",
    "gas",
    "market",
]
categories = [
    "encoding",
    "data-structures",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/hupe1980/rubo4e"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
builder = ["dep:typed-builder"]
decimal = ["dep:rust_decimal"]
default = ["serde"]
json = [
    "serde",
    "dep:serde_json",
]
metrics = ["dep:metrics"]
schemars = [
    "serde",
    "dep:schemars",
]
serde = [
    "dep:serde",
    "dep:indexmap",
]
simd-json = [
    "json",
    "dep:simd-json",
]
sqlx = [
    "dep:sqlx",
    "json",
]
strum = ["dep:strum"]
time = ["dep:time"]
tracing = ["dep:tracing"]
utoipa = ["dep:utoipa"]
validate = ["dep:garde"]
versioned = ["serde"]

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

[[example]]
name = "builder"
path = "examples/builder.rs"
required-features = [
    "versioned",
    "builder",
    "json",
    "decimal",
]

[[example]]
name = "serialize"
path = "examples/serialize.rs"
required-features = [
    "versioned",
    "json",
    "decimal",
]

[[test]]
name = "any_bo"
path = "tests/any_bo.rs"

[[test]]
name = "builder"
path = "tests/builder.rs"

[[test]]
name = "compat"
path = "tests/compat.rs"

[[test]]
name = "golden"
path = "tests/golden.rs"

[[test]]
name = "module_coverage"
path = "tests/module_coverage.rs"

[[test]]
name = "proptest_roundtrips"
path = "tests/proptest_roundtrips.rs"

[[test]]
name = "schemars_snapshots"
path = "tests/schemars_snapshots.rs"

[[test]]
name = "serde_round_trip"
path = "tests/serde_round_trip.rs"

[[test]]
name = "struct_sizes"
path = "tests/struct_sizes.rs"

[[test]]
name = "strum_integration"
path = "tests/strum_integration.rs"

[[test]]
name = "utoipa_compile"
path = "tests/utoipa_compile.rs"

[[test]]
name = "validation"
path = "tests/validation.rs"

[[bench]]
name = "json_perf"
path = "benches/json_perf.rs"
harness = false
required-features = [
    "versioned",
    "json",
    "time",
    "decimal",
]

[dependencies.garde]
version = "0.23"
features = ["derive"]
optional = true

[dependencies.indexmap]
version = "2"
features = ["serde"]
optional = true

[dependencies.metrics]
version = "0.24"
optional = true
default-features = false

[dependencies.rust_decimal]
version = "1"
features = ["serde-with-str"]
optional = true

[dependencies.schemars]
version = "1"
features = [
    "indexmap2",
    "rust_decimal1",
]
optional = true

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

[dependencies.serde_json]
version = "1"
features = ["raw_value"]
optional = true

[dependencies.simd-json]
version = "0.17"
features = ["serde_impl"]
optional = true

[dependencies.sqlx]
version = "0.8"
features = ["postgres"]
optional = true

[dependencies.strum]
version = "0.28"
features = ["derive"]
optional = true

[dependencies.thiserror]
version = "2"

[dependencies.time]
version = "0.3.53"
features = [
    "serde",
    "serde-well-known",
    "formatting",
    "parsing",
    "macros",
]
optional = true

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

[dependencies.typed-builder]
version = "0.23"
optional = true

[dependencies.utoipa]
version = "5"
features = [
    "time",
    "decimal",
    "indexmap",
]
optional = true

[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]

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

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

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

[dev-dependencies.trybuild]
version = "1"
features = ["diff"]
