[package]
name = "paramdef"
version = "0.2.0"
edition = "2024"
rust-version = "1.85"
license = "MIT OR Apache-2.0"
description = "Type-safe parameter definition system"
repository = "https://github.com/vanyastaff/paramdef"
documentation = "https://vanyastaff.github.io/paramdef"
keywords = ["parameters", "schema", "forms", "validation", "ui"]
categories = ["data-structures", "gui", "config"]
readme = "README.md"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(codspeed)'] }
[features]
default = []
visibility = []
validation = ["dep:regex"]
serde = ["dep:serde", "dep:serde_json", "dep:base64", "smartstring/serde", "indexmap/serde"]
events = ["dep:tokio"]
i18n = ["dep:fluent"]
chrono = ["dep:chrono"]
full = ["visibility", "validation", "serde", "events", "i18n", "chrono"]
[dependencies]
smartstring = "1.0.1"
smallvec = "1.13"
thiserror = "2.0"
bitflags = "2.10"
rustc-hash = "2.1"
indexmap = "2.7"
serde = { version = "1.0", optional = true, features = ["derive"] }
serde_json = { version = "1.0", optional = true }
base64 = { version = "0.22", optional = true }
tokio = { version = "1.43", optional = true, features = ["sync"] }
fluent = { version = "0.17", optional = true }
chrono = { version = "0.4", optional = true, default-features = false, features = ["std"] }
regex = { version = "1.11", optional = true }
[dev-dependencies]
tokio = { version = "1.43", features = ["rt-multi-thread", "macros"] }
criterion = { version = "0.7", features = ["html_reports"] }
codspeed-criterion-compat = "2.8"
[[bench]]
name = "parameters"
harness = false
[[bench]]
name = "value"
harness = false
[[bench]]
name = "schema_context"
harness = false
[[bench]]
name = "runtime"
harness = false
[[bench]]
name = "core_types"
harness = false
[[bench]]
name = "containers"
harness = false