# 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.92"
name = "nabled-sim"
version = "0.0.10"
authors = [
    "Niklaus Parcell <nik.parcell@gmail.com>",
    "George Lee Patterson <patterson.george@gmail.com>",
]
build = false
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Physical AI simulation, control, and estimation pipelines for nabled"
homepage = "https://github.com/MontOpsInc/nabled"
documentation = "https://docs.rs/nabled-sim"
readme = "README.md"
keywords = [
    "robotics",
    "simulation",
    "orchestration",
    "ndarray",
    "physical-ai",
]
categories = [
    "mathematics",
    "science",
    "algorithms",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/MontOpsInc/nabled"

[features]
blas = [
    "nabled-linalg/blas",
    "nabled-ml/blas",
    "nabled-kinematics/blas",
    "nabled-model/blas",
    "nabled-dynamics/blas",
    "nabled-control/blas",
    "nabled-sensor/blas",
]
default = []
lapack-provider = [
    "nabled-linalg/lapack-provider",
    "nabled-ml/lapack-provider",
    "nabled-kinematics/lapack-provider",
    "nabled-model/lapack-provider",
    "nabled-dynamics/lapack-provider",
    "nabled-control/lapack-provider",
    "nabled-sensor/lapack-provider",
]
magma-system = [
    "lapack-provider",
    "nabled-linalg/magma-system",
    "nabled-ml/magma-system",
    "nabled-kinematics/magma-system",
    "nabled-model/magma-system",
    "nabled-dynamics/magma-system",
    "nabled-control/magma-system",
    "nabled-sensor/magma-system",
]
netlib-static = [
    "blas",
    "lapack-provider",
    "nabled-linalg/netlib-static",
    "nabled-ml/netlib-static",
    "nabled-kinematics/netlib-static",
    "nabled-model/netlib-static",
    "nabled-dynamics/netlib-static",
    "nabled-control/netlib-static",
    "nabled-sensor/netlib-static",
]
netlib-system = [
    "blas",
    "lapack-provider",
    "nabled-linalg/netlib-system",
    "nabled-ml/netlib-system",
    "nabled-kinematics/netlib-system",
    "nabled-model/netlib-system",
    "nabled-dynamics/netlib-system",
    "nabled-control/netlib-system",
    "nabled-sensor/netlib-system",
]
openblas-static = [
    "blas",
    "lapack-provider",
    "nabled-linalg/openblas-static",
    "nabled-ml/openblas-static",
    "nabled-kinematics/openblas-static",
    "nabled-model/openblas-static",
    "nabled-dynamics/openblas-static",
    "nabled-control/openblas-static",
    "nabled-sensor/openblas-static",
]
openblas-system = [
    "blas",
    "lapack-provider",
    "nabled-linalg/openblas-system",
    "nabled-ml/openblas-system",
    "nabled-kinematics/openblas-system",
    "nabled-model/openblas-system",
    "nabled-dynamics/openblas-system",
    "nabled-control/openblas-system",
    "nabled-sensor/openblas-system",
]
signal = ["nabled-linalg/signal"]

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

[dependencies.nabled-control]
version = "=0.0.10"

[dependencies.nabled-core]
version = "=0.0.10"

[dependencies.nabled-dynamics]
version = "=0.0.10"

[dependencies.nabled-kinematics]
version = "=0.0.10"

[dependencies.nabled-linalg]
version = "=0.0.10"

[dependencies.nabled-ml]
version = "=0.0.10"

[dependencies.nabled-model]
version = "=0.0.10"

[dependencies.nabled-sensor]
version = "=0.0.10"

[dependencies.ndarray]
version = "0.17"
features = ["serde"]

[dependencies.num-traits]
version = "0.2"

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

[lints.clippy]
clone_on_ref_ptr = "warn"
large_futures = "warn"
must_use_candidate = "allow"

[lints.clippy.pedantic]
level = "warn"
priority = -1

[lints.rust]
elided_lifetimes_in_paths = "deny"
explicit_outlives_requirements = "warn"
let_underscore_drop = "warn"
missing_copy_implementations = "warn"
redundant_lifetimes = "warn"
rust_2024_incompatible_pat = "warn"
single_use_lifetimes = "warn"
trivial_numeric_casts = "warn"
unit_bindings = "warn"
unnameable_types = "warn"
unreachable_pub = "warn"
unsafe_op_in_unsafe_fn = "warn"
unused_import_braces = "warn"
unused_imports = "deny"
unused_lifetimes = "warn"
unused_macro_rules = "warn"
unused_qualifications = "warn"
unused_results = "warn"
variant_size_differences = "warn"

[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(coverage_nightly)"]
