setty 1.0.0

Opinionated configuration library.
Documentation
[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"]

# Currently needed if you use serde_json with `arbitrary_precision` feature
# See: https://github.com/acatton/serde-yaml-ng/issues/31
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 }

# Optional
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",
] }