[package]
name = "rc522-example"
version = "0.1.0"
authors = ["Rajas Paranjpe <52586855+ChocolateLoverRaj@users.noreply.github.com>"]
edition = "2021"
resolver = "2"
rust-version = "1.77"

[[bin]]
name = "rc522-example"
harness = false # do not use the built-in cargo test harness -> resolve rust-analyzer errors

[profile.release]
opt-level = "s"

[profile.dev]
debug = true    # Symbols are nice, and they don't increase the size on Flash
opt-level = "z"

[features]
default = []

experimental = ["esp-idf-svc/experimental"]

[dependencies]
log = "0.4"
esp-idf-svc = "0.51"
mfrc522 = { version = "0.8.0", features = ["std"] }
futures = "0.3.31"
tokio = { version = "1.48.0", features = ["macros", "rt", "time"] }

# --- Optional Embassy Integration ---
# esp-idf-svc = { version = "0.51", features = ["critical-section", "embassy-time-driver", "embassy-sync"] }

# If you enable embassy-time-driver, you MUST also add one of:

# a) Standalone Embassy libs ( embassy-time, embassy-sync etc.) with a foreign async runtime:
# embassy-time = { version = "0.4.0", features = ["generic-queue-8"] } # NOTE: any generic-queue variant will work

# b) With embassy-executor:
# embassy-executor = { version = "0.7", features = ["executor-thread", "arch-std"] }

# NOTE: if you use embassy-time with embassy-executor you don't need the generic-queue-8 feature

# --- Temporary workaround for embassy-executor < 0.8 ---
# esp-idf-svc = { version = "0.51", features = ["embassy-time-driver", "embassy-sync"] }
# critical-section = { version = "1.1", features = ["std"], default-features = false }

[build-dependencies]
embuild = "0.33"
