[workspace]
members = ["./.", "examples/*"]

[package]
name = "traq-bot-http"
version = "0.11.3"
authors = ["H1rono <hronok66@gmail.com>"]
edition = "2021"
description = "Library to parse POST requests of traQ BOT event"
rust-version = "1.76.0"
homepage = "https://github.com/H1rono/traq-bot-http-rs"
keywords = ["http", "web", "framework"]
categories = ["web-programming::http-server"]
license = "MIT"
readme = "README.md"
repository = "https://github.com/H1rono/traq-bot-http-rs"
include = ["/src", "/examples", "/README.md", "/LICENSE"]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[package.metadata.docs.rs]
features = ["tower"]
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
paste = "1.0"

[dependencies.uuid]
version = "1.11"
features = ["v4", "serde"]
optional = true

[dependencies.time]
version = "0.3"
features = ["serde", "parsing", "formatting", "macros"]
optional = true

[dependencies.chrono]
version = "0.4"
features = ["serde"]
optional = true

[dependencies.bytes]
version = "1"
features = []
optional = true

[dependencies.http]
version = "1"
features = []
optional = true

[dependencies.http-body]
version = "1"
features = []
optional = true

[dependencies.http-body-util]
version = "0.1"
features = []
optional = true

[dependencies.futures-core]
version = "0.3"
features = []
optional = true

[dependencies.futures-util]
version = "0.3"
default-features = false
features = []
optional = true

[dependencies.pin-project-lite]
version = "0.2"
features = []
optional = true

[dependencies.tower-service]
version = "0.3"
features = []
optional = true

[dev-dependencies]
http = "1"
futures = { version = "0.3", features = ["executor"] }
tower = { version = "0.5", features = ["util"] }

[features]
uuid = ["dep:uuid"]
time = ["dep:time"]
chrono = ["dep:chrono"]
http = [
    "dep:bytes",
    "dep:http",
    "dep:http-body",
    "dep:http-body-util",
    "dep:pin-project-lite",
    "dep:futures-core",
    "dep:futures-util",
]
tower = ["http", "dep:tower-service"]

[lints.clippy]
pedantic.level = "deny"
pedantic.priority = 0
cargo.level = "deny"
cargo.priority = 1