crate-settings 0.0.7

Allows compile-time access to crate-specific settings defined as metadata in Cargo.toml.
Documentation
[workspace]
members = [
	"examples/example_crate_with_settings",
	"examples/workspace_root",
	"examples/workspace_root/inner_a",
	"examples/workspace_root/inner_a/inner_b",
	"examples/workspace_root/inner_a/inner_b/inner_c"
]

[package]
name = "crate-settings"
version = "0.0.7"
edition = "2021"
authors = ["sam0x17"]
homepage = "https://sam0x17.dev"
description = "Allows compile-time access to crate-specific settings defined as metadata in Cargo.toml."
keywords = ["settings", "compile-time", "environment", "feature"]
license = "MIT"

[lib]
proc-macro = true

[dependencies]
toml = "0.7"
proc-macro2 = "1"
syn = "2"
quote = "1"
derive-syn-parse = "0.1.5"
walkdir = "2"

# the following metadata is used by tests
[package.metadata.settings]
example-crate = { some-key = "hey", something_else = false }
another-crate = { number = 33, float = 55.6, arr = ["a", "b", "c"] }
cool_crate = { some_date_time = 1979-05-27 07:32:00Z, int_arr = [1, 2, 3, 4, 5, 6] }
weird_crate = { mixed_arr = ["hey", 1, false], table = { key1 = "hey", key2 = 3 } }