realme 0.2.4

A flexible and extensible configuration management library for Rust, designed to simplify the process of loading and managing configuration settings from various sources.
Documentation
[dependencies.clap]
features = ["derive"]
optional = true
version = "4.5.17"

[dependencies.crossbeam]
optional = true
version = "0.8.4"

[dependencies.itertools]
version = "0.14.0"

[dependencies.minijinja]
optional = true
version = "2.4.0"

[dependencies.nom]
features = ["alloc"]
optional = true
version = "8.0"

[dependencies.notify]
optional = true
version = "8.0.0"

[dependencies.realme_macros]
optional = true
version = "0.2.2"

[dependencies.ron]
optional = true
version = "0.11"

[dependencies.rust-ini]
optional = true
version = "0.21.0"

[dependencies.serde]
features = ["derive"]
version = "1"

[dependencies.serde_json]
optional = true
version = "1.0"

[dependencies.serde_json5]
optional = true
version = "0.2.1"

[dependencies.serde_yaml2]
optional = true
version = "0.1.2"

[dependencies.thiserror]
version = "2.0"

[dependencies.toml]
optional = true
version = "0.9.2"

[dependencies.tracing]
optional = true
version = "0.1.40"

[dev-dependencies.anyhow]
version = "1.0"

[dev-dependencies.chrono]
features = ["serde"]
version = "0.4.24"

[dev-dependencies.criterion]
features = ["html_reports"]
version = "0.7"

[dev-dependencies.dotenvy]
version = "0.15.7"

[dev-dependencies.pretty_assertions]
version = "1.4"

[dev-dependencies.regex-lite]
version = "0.1.6"

[dev-dependencies.serde_json]
version = "1.0"

[dev-dependencies.tempfile]
version = "3.13.0"

[dev-dependencies.toml]
version = "0.9.2"

[dev-dependencies.tracing-subscriber]
version = "0.3.15"

[dev-dependencies.validator]
features = ["derive"]
version = "0.20.0"

[[example]]
name = "access"
path = "examples/access/main.rs"

[[example]]
name = "cmd_source"
path = "examples/cmd_source/main.rs"

[[example]]
name = "custom_format"
path = "examples/custom_format/main.rs"

[[example]]
name = "deserialize_anytype"
path = "examples/deserialize_anytype/main.rs"

[[example]]
name = "global"
path = "examples/global/main.rs"

[[example]]
name = "hierarchical_profile"
path = "examples/hierarchical_profile/main.rs"

[[example]]
name = "macros"
path = "examples/macros/main.rs"

[[example]]
name = "placeholder"
path = "examples/placeholder/main.rs"

[[example]]
name = "priority"
path = "examples/priority/main.rs"

[[example]]
name = "reload"
path = "examples/reload/main.rs"

[[example]]
name = "simple"
path = "examples/simple/main.rs"

[[example]]
name = "tracing"
path = "examples/tracing/main.rs"

[[example]]
name = "validator"
path = "examples/validator/main.rs"

[[example]]
name = "watch"
path = "examples/watch/main.rs"

[features]
cmd = ["dep:clap", "dep:nom"]
default = ["env", "macros"]
env = []
full = ["cmd", "env", "toml", "json", "yaml", "json5", "ron", "ini", "tracing", "watch", "macros", "placeholder"]
ini = ["dep:rust-ini"]
json = ["dep:serde_json"]
json5 = ["dep:serde_json5"]
macros = ["dep:realme_macros"]
placeholder = ["dep:minijinja"]
ron = ["dep:ron"]
toml = ["dep:toml"]
tracing = ["dep:tracing"]
watch = ["dep:notify", "dep:crossbeam"]
yaml = ["dep:serde_yaml2"]

[lib]
name = "realme"
path = "src/lib.rs"

[lints.clippy]
as_underscore = "warn"
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
deref_by_slicing = "warn"
else_if_without_else = "warn"
empty_line_after_doc_comments = "warn"
equatable_if_let = "warn"
fn_to_numeric_cast_any = "warn"
format_push_string = "warn"
implicit_clone = "warn"
map_err_ignore = "warn"
missing_const_for_fn = "warn"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
mixed_read_write_in_expression = "warn"
module_inception = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
needless_raw_strings = "warn"
redundant_type_annotations = "warn"
rest_pat_in_fully_bound_structs = "warn"
string_lit_chars_any = "warn"
unwrap_used = "warn"
use_self = "warn"
wildcard_imports = "allow"

[lints.clippy.pedantic]
level = "warn"
priority = -1

[lints.rust]
unsafe_code = "forbid"

[package]
authors = ["Jasper Zhang <hanjie.zhang1228@gmail.com>"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
description = "A flexible and extensible configuration management library for Rust, designed to simplify the process of loading and managing configuration settings from various sources."
edition = "2021"
exclude = [".github", "Makefile.toml", "CHANGELOG.md"]
homepage = "https://github.com/vainjoker/realme"
license = "MIT OR Apache-2.0"
name = "realme"
readme = "README.md"
repository = "https://github.com/vainjoker/realme"
version = "0.2.4"

[profile.release]
strip = true

[[test]]
name = "cmd_test"
path = "tests/cmd_test.rs"

[[test]]
name = "ini_test"
path = "tests/ini_test.rs"

[[test]]
name = "json5_test"
path = "tests/json5_test.rs"

[[test]]
name = "json_test"
path = "tests/json_test.rs"

[[test]]
name = "ron_test"
path = "tests/ron_test.rs"

[[test]]
name = "toml_test"
path = "tests/toml_test.rs"

[[test]]
name = "watch_test"
path = "tests/watch_test.rs"

[[test]]
name = "yaml_test"
path = "tests/yaml_test.rs"