[package]
name = "setty"
description = "Opinionated configuration library."
categories = { workspace = true }
version = { workspace = true }
homepage = { workspace = true }
repository = { workspace = true }
authors = { workspace = true }
readme = { workspace = true }
license = { workspace = true }
keywords = { workspace = true }
include = { workspace = true }
edition = { workspace = true }
[package.metadata.docs.rs]
all-features = true
[features]
default = []
derive-clone = ["setty-derive/derive-clone"]
derive-debug = ["setty-derive/derive-debug"]
derive-partial-eq = ["setty-derive/derive-partial-eq"]
derive-eq = ["setty-derive/derive-eq"]
derive-deserialize = ["setty-derive/derive-deserialize"]
derive-serialize = ["setty-derive/derive-serialize", "dep:serde_with"]
derive-jsonschema = [
"setty-derive/derive-jsonschema",
"dep:schemars",
"schemars/derive",
]
derive-validate = ["setty-derive/derive-validate", "dep:validator"]
case-fields-lower = ["setty-derive/case-fields-lower"]
case-fields-pascal = ["setty-derive/case-fields-pascal"]
case-fields-camel = ["setty-derive/case-fields-camel"]
case-fields-snake = ["setty-derive/case-fields-snake"]
case-fields-kebab = ["setty-derive/case-fields-kebab"]
case-enums-lower = ["setty-derive/case-enums-lower"]
case-enums-pascal = ["setty-derive/case-enums-pascal"]
case-enums-camel = ["setty-derive/case-enums-camel"]
case-enums-snake = ["setty-derive/case-enums-snake"]
case-enums-kebab = ["setty-derive/case-enums-kebab"]
case-enums-any = ["setty-derive/case-enums-any"]
fmt-toml = ["dep:toml"]
fmt-json = []
fmt-yaml = ["dep:serde_yaml"]
fmt-yaml-arbitrary-precision-hack = []
types-bigdecimal = ["schemars/bigdecimal04", "dep:bigdecimal"]
types-chrono = ["schemars/chrono04", "dep:chrono"]
types-duration-string = ["dep:duration-string"]
types-secrecy = ["dep:secrecy"]
types-url = ["schemars/url2", "dep:url"]
gen-jsonschema = ["derive-jsonschema"]
gen-markdown = ["derive-jsonschema", "dep:html-escape"]
[dependencies]
setty-derive = { workspace = true }
serde = { version = "1", default-features = false, features = [
"std",
"alloc",
"derive",
] }
serde_json = { version = "1", default-features = false, features = [
"std",
"alloc",
] }
thiserror = { version = "2", default-features = false }
bigdecimal = { optional = true, version = "0.4", default-features = false }
chrono = { optional = true, version = "0.4", default-features = false, features = [
"alloc",
] }
duration-string = { optional = true, version = "0.5", default-features = false, features = [
"serde",
] }
html-escape = { optional = true, version = "0.2", default-features = false }
schemars = { optional = true, version = "1", default-features = false }
secrecy = { optional = true, version = "0.10", default-features = false }
serde_with = { optional = true, version = "3", default-features = false, features = [
"macros",
] }
serde_yaml = { optional = true, package = "serde_yaml_ng", version = "0.10", default-features = false }
toml = { optional = true, version = "0.9", default-features = false, features = [
"std",
"serde",
"parse",
"display",
] }
url = { optional = true, version = "2", default-features = false, features = [
"std",
] }
validator = { optional = true, version = "0.20", default-features = false, features = [
"derive",
] }
[dev-dependencies]
indoc = "2"
tempfile = { version = "3", default-features = false }
pretty_assertions = { version = "1", default-features = false, features = [
"std",
] }