moonlab 1.2.0

Safe, idiomatic Rust bindings for the Moonlab quantum simulator
[package]
name = "moonlab"
version = "1.2.0"
edition = "2021"
rust-version = "1.86"
authors = ["Moonlab Team"]
description = "Safe, idiomatic Rust bindings for the Moonlab quantum simulator"
license = "MIT"
repository = "https://github.com/tsotchke/moonlab"
keywords = ["quantum", "simulator", "computing", "physics"]
categories = ["science", "simulation"]
readme = "README.md"
build = "build.rs"

[dependencies]
moonlab-sys = { version = "1.2.0", path = "../moonlab-sys" }
thiserror = "2.0"
num-complex = "0.4"
rand = "0.8"
libc = "0.2"

[dev-dependencies]
approx = "0.5"

[features]
default = []

[lints.rust]
# This crate is a thin safe-Rust facade over the C ABI in moonlab-sys.
# Every wrapper method must call into C through `unsafe { ... }`, so the
# default `unsafe_code = "warn"` produces 300+ warnings of pure noise.
# We set it to "allow" the same way moonlab-sys does.  If a non-FFI
# unsafe block ever shows up (say, a custom data-structure built on
# raw pointers), it should be reviewed in code review rather than
# caught by this lint -- the FFI noise drowns out the signal.
unsafe_code = "allow"

[lints.clippy]
all = "warn"
pedantic = "warn"
nursery = "warn"
# Allow certain patterns common in FFI bindings
cast_possible_truncation = "allow"
cast_sign_loss = "allow"
cast_precision_loss = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"