[package]
name = "device"
version = "0.0.3"
authors = ["Casey Rodarmor <casey@rodarmor.com>"]
description = "A generative engine"
edition = "2024"
homepage = "https://github.com/casey/device"
include = ["/src", "/templates"]
license = "CC0-1.0"
repository = "https://github.com/casey/device"

[dependencies]
boilerplate = "1.0.1"
camino = { version = "1.2.1", features = ["serde1"] }
clap = { version = "4.5.21", features = ["derive"] }
env_logger = "0.11.0"
hound = "3.5.1"
indicatif = "0.18.3"
log = "0.4.22"
midir = "0.10.1"
midly = "0.5.3"
nalgebra = "0.34.1"
parley = "0.6.0"
png = "0.18.0"
pollster = "0.4.0"
rand = "0.9.2"
regex = "1.11.1"
rodio = { version = "0.21.1", features = ["playback", "symphonia-all"], default-features = false }
rustfft = "6.2.0"
serde = { version = "1.0.228", features = ["derive"] }
serde_yaml = "0.9.34"
snafu = "0.8.5"
strum = { version = "0.27.1", features = ["derive"] }
symphonia = { version = "0.5.5", features = [ "all-codecs", "all-formats" ] }
tabled = "0.20.0"
tempfile = "3.17.1"
vello = "0.6.0"
walkdir = "2.5.0"
wgpu = "26.0.1"
winit = "0.30.5"

[dev-dependencies]
tempfile = "3.17.1"

[lints.rust]
mismatched-lifetime-syntaxes = "allow"

[lints.clippy]
all = { level = "deny", priority = -1 }
arbitrary-source-item-ordering = "deny"
cast-lossless = "allow"
cast-precision-loss = "allow"
float-cmp = "allow"
format-push-string = "allow"
ignore-without-reason = "allow"
many-single-char-names = "allow"
needless-pass-by-value = "allow"
pedantic = { level = "deny", priority = -1 }
similar-names = "allow"
struct-excessive-bools = "allow"
struct_field_names = "allow"
too-many-arguments = "allow"
too-many-lines = "allow"
unnecessary_wraps = "allow"
wildcard-imports = "allow"
