openapi_type 0.6.0

OpenAPI type information for Rust structs and enums
Documentation
[workspace]
members = [".", "./derive"]

[workspace.package]
edition = "2021"
rust-version = "1.95"
license = "Apache-2.0"
repository = "https://codeberg.org/msrd0/openapi_type"

[workspace.lints.rust]
elided_lifetimes_in_paths = "deny"
improper_ctypes_definitions = "deny"
missing_debug_implementations = "warn"
type_alias_bounds = "allow"
unreachable_pub = "warn"
unsafe_code = "forbid"

[workspace.lints.clippy]
# known broken lint, doesn't know what drop() does
await_holding_lock = "allow"
# wrong (read: opinionated) style choices
doc_lazy_continuation = "allow"
manual_is_multiple_of = "allow"
manual_range_contains = "allow"
tabs_in_doc_comments = "allow"

[workspace.lints.rustdoc]
broken_intra_doc_links = "deny"

[package]
name = "openapi_type"
version = "0.6.0"
edition.workspace = true
rust-version.workspace = true
description = "OpenAPI type information for Rust structs and enums"
keywords = ["openapi", "swagger", "api", "oas", "oas3"]
license.workspace = true
repository.workspace = true
readme = "crates-io.md"
include = ["src/**/*", "LICENSE", "crates-io.md"]

[lints]
workspace = true

[features]
# Enable tuples of up to 16 elements by default
default = ["tuples16"]

# Tuples of various sizes
tuples16 = []
tuples32 = ["tuples16"]
tuples48 = ["tuples32"]
tuples64 = ["tuples48"]

# Crate features that might enable multiple versions
chrono = ["chrono04"]
hashbrown = ["hashbrown016", "hashbrown017"]
jiff = ["jiff02"]
linked-hash-map = ["linked-hash-map05"]
time = ["time03"]
url = ["url2"]
uuid = ["uuid1"]

# Crate features that enable exactly one version
chrono04 = ["dep:chrono04", "_datetime"]
hashbrown016 = ["dep:hashbrown016"]
hashbrown017 = ["dep:hashbrown017"]
jiff02 = ["dep:jiff02", "_datetime"]
linked-hash-map05 = ["dep:linked-hash-map05"]
time03 = ["dep:time03", "_datetime"]
url2 = ["dep:url2"]
uuid1 = ["dep:uuid1"]

## Private features
# Enable date/time macros
_datetime = []
# Only enabled with --all-features, if missing some lints are disabled
_all_features = []

[package.metadata.docs.rs]
all-features = true

[dependencies]
indexmap = { version = "2.13", features = ["serde"] }
oas3 = "0.22"
openapi_type_derive = { path = "./derive", version = "0.6.0" }
serde = { version = "1.0.158", features = ["derive"] }
serde_json = "1.0"

# optional dependencies
chrono04 = { package = "chrono", version = "0.4", default-features = false, optional = true }
hashbrown016 = { package = "hashbrown", version = "0.16", default-features = false, optional = true }
hashbrown017 = { package = "hashbrown", version = "0.17", default-features = false, optional = true }
jiff02 = { package = "jiff", version = "0.2", optional = true }
linked-hash-map05 = { package = "linked-hash-map", version = "0.5", optional = true }
time03 = { package = "time", version = "0.3.38", features = ["serde-human-readable"], optional = true }
url2 = { package = "url", version = "2.5.4", optional = true }
uuid1 = { package = "uuid", version = "1", optional = true }

[dev-dependencies]
paste = "1.0"
pretty_assertions = "1.0"
serde-saphyr = { version = "0.0.27", features = ["serialize"], default-features = false }
trybuild = "=1.0.116"