Releases: LukasKalbertodt/confique
Releases · LukasKalbertodt/confique
v0.3.0
- Breaking: Raise MSRV to 1.61.0
- Breaking:
toml
,yaml
andjson5
are no longer default features (19d9ddc
). You now have to manually specify the features you need inCargo.toml
. - Breaking: env vars set to an empty string, which fail to deserialize/parse/validate are now treated as not set. This is technically a breaking change, but I think this is the expected behavior and shouldn't affect you. (#39)
- ⭐ Add validation feature (#40)
#[config(validate = path::to::function)] field: u32
to call the given function during field deserialization.#[config(validate(!s.is_empty(), "user must not be empty"))] user: String
is aassert!
-style syntax to simple validation checks.- Validation can also be added to full structs.
- See docs and examples for more information!
- Stop including
Error::source
in theDisplay
output ofError
(d454f0957
) - Improve & refactor docs of
derive(Config
a bit - Update dependencies (syn to 2.0, heck to 0.5): this shouldn't affect you, except for faster compile times due to smaller dependency tree.
v0.2.6
v0.2.5
- Add
#[config(partial_attr(...))]
struct attribute to specify attributes for
the partial type. - Allow "yes" and "no" as values when deserializing
bool
from env. Also, the
match is done completely case insensitive now, such that e.g. "True", "tRuE"
are accepted now.
0.2.4
- Fixed enum deserialization from env values
v0.2.3
Fixed
- Add
#[allow(missing_docs)]
to some generated code to avoid problems in
crates that#[forbid(missing_docs)]
globally. - Fix badge in README
Added
- Add short docs to generated module (to explains its purpose and avoid
confusion when people find it in their docs)
Changed
- Internal change that potentially improves compile time a tiny bit.
v0.2.2
Fixed
v0.2.1
Added
parse_env
attribute for custom parsing of environment variables (allows you
to load lists and other complex objects from env vars).
(in #22, thanks @cyphersnake)
Changed
- Updated
serde_yaml
to 0.9 (this is only an internal dependency).
v0.2.0
Added
- Add support for array default values, e.g.
#[config(default = [1, 2, 3])
- Add support for map default values, e.g.
#[config(default = { "cat": 3, "dog": 5 })
- Add JSON5 support
- Show environment variable key in config template
- Impl
PartialEq
for allmeta
items - Impl
Serialize
formeta::Expr
Changed
- Breaking: rename
{toml,yaml}::format
totemplate
- Breaking: make
FormatOptions
and somemeta
types#[non_exhaustive]
- Move to Rust 2021 (bumps MSRV to 1.56)
- Improved docs
Fixed
- Fix type inference for float default values
- Fix name clash with generated helper functions
- Fix incorrect newlines for string default values in YAML config template
Internal
- Rewrite large parts of the crate, mostly to deduplicate logic
- Add lots of tests
v0.1.4
v0.1.3 (2022-04-07)
Fixed
- Derive macro does not product unparsable output anymore if the visibility
modifier of the struct ispub
orpub(in path)
.
Changed
- The output of
toml::format
now emits empty lines above nested objects in a
more useful manner.