[package]
name = "typed-openapi"
description = "Typed Rust calls and a clap command tree from one OpenAPI document, with every write behind a dry-run gate."
keywords = ["openapi", "clap", "cli", "codegen", "http"]
categories = [
"command-line-interface",
"api-bindings",
"web-programming::http-client",
"development-tools",
]
edition.workspace = true
rust-version.workspace = true
version.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
[features]
default = ["clap"]
clap = ["dep:clap"]
document = ["dep:openapiv3", "dep:roas-overlay", "dep:serde_yaml_ng"]
generate = [
"document",
"dep:heck",
"dep:prettyplease",
"dep:proc-macro2",
"dep:quote",
"dep:schemars",
"dep:syn",
"dep:typify",
]
builder = ["dep:bon"]
[dependencies]
bon = { workspace = true, optional = true }
clap = { workspace = true, optional = true }
heck = { workspace = true, optional = true }
http = { workspace = true }
openapiv3 = { workspace = true, optional = true }
postcard = { workspace = true }
prettyplease = { workspace = true, optional = true }
proc-macro2 = { workspace = true, optional = true }
quote = { workspace = true, optional = true }
regress = { workspace = true }
roas-overlay = { workspace = true, optional = true }
schemars = { workspace = true, optional = true }
serde = { workspace = true }
serde_json = { workspace = true }
serde_yaml_ng = { workspace = true, optional = true }
syn = { workspace = true, optional = true }
thiserror = { workspace = true }
typify = { workspace = true, optional = true }
[dev-dependencies]
typed-openapi = { path = ".", features = ["document", "generate"] }
[package.metadata.docs.rs]
all-features = true
[lints]
workspace = true