[package]
name = "randpaper"
version = "0.2.3"
edition = "2024"
description = "A customizable wallpaper daemon for per-monitor cycling, one-shot application, and optional theme synchronization for Waybar and terminals."
readme = "README.md"
license = "Apache-2.0"
repository = "https://github.com/saylesss88/randpaper"
homepage = "https://github.com/saylesss88/randpaper"
keywords = ["rust", "wallpaper"]
categories = ["command-line-utilities", "multimedia"]
exclude = [
	"assets/*",
	"*.mp4",
	"*.gif",
	".github",
	".gitignore",
	"flake",
	"flake.lock",
	"flake.nix",
	"result",
	"rustfmt.toml",
	"node_modules/*",
	"package-lock.json",
	"package.json",
]
resolver = "3"

[dependencies]
anyhow = "1.0.101"
async-trait = "0.1.89"
clap = {version = "4.5.57", features = ["derive"]}
color-thief = "0.2.2"
dirs = "6.0.0"
env_logger = "0.11.8"
figment = {version = "0.10.19", features = ["env", "toml"]}
fslock = "0.2.1"
image = {version = "0.25.9", default-features = false, features = [
	"jpeg",
	"png",
	"bmp",
	"webp",
]}
log = "0.4.29"
parse_duration = "2.1.1"
rand = "0.10.0"
serde = "1.0.228"
serde_json = "1.0.149"
swayipc-async = "3.0.0"
tokio = {version = "1.49.0", features = ["full"]}
walkdir = "2.5.0"
xdg = "3.0.0"

[lints.rust]
unsafe_code = "forbid"
future_incompatible = {level = "warn", priority = -1}
nonstandard_style = {level = "warn", priority = -1}
rust_2018_idioms = {level = "warn", priority = -1}

[lints.rustdoc]
all = "warn"

[lints.clippy]
all = {level = "warn", priority = -1}
pedantic = {level = "warn", priority = -1}
nursery = {level = "warn", priority = -1}
# missing_const_for_fn = "allow"
cargo = {level = "warn", priority = -1}

unwrap_used = "warn" # Forces you to use .expect() or handle errors
todo = "warn"        # Prevents accidental commits of unfinished code
dbg_macro = "warn"   # Ensures no debug print statements leak to production
panic = "warn"       # Warns on code that can panic

[profile.release]
opt-level = 3
lto = "thin"
codegen-units = 8
panic = 'abort'
strip = true
