Lukas Kalbertodt
a54042f8ca
Revert "Replace some manual parsing code with darling helper crate"
...
This reverts commit e5af4f8efe .
The `darling` crate limits us to `syn::Meta` which is probably not
enough in the long run. There are a couple of other problems I have
with this crate and I think it's currently not worth. I'm considering
writing my own alternative...
2021-11-03 14:58:23 +01:00
Lukas Kalbertodt
e5af4f8efe
Replace some manual parsing code with darling helper crate
2021-11-03 11:46:33 +01:00
Lukas Kalbertodt
608b978341
Slightly improve derive error message for nested fields not impl Config
2021-10-26 16:19:33 +02:00
Lukas Kalbertodt
3c5b72220a
Improve derive error messages when fields don't implement Deserialize
2021-10-26 16:19:33 +02:00
Lukas Kalbertodt
4f4f42e8f3
Disable some code (and fix others) when no features are enabled
v0.1.0
2021-07-28 12:38:50 +02:00
Lukas Kalbertodt
1a8e9440cc
Minor README improvements
2021-07-28 12:16:13 +02:00
Lukas Kalbertodt
a326afa4b1
Add changelog
2021-07-28 12:12:44 +02:00
Lukas Kalbertodt
f0648d722e
Prepare macro crate for release
2021-07-28 12:11:32 +02:00
Lukas Kalbertodt
e35be71665
Add metadata to Cargo.toml
2021-07-28 12:09:04 +02:00
Lukas Kalbertodt
b7515239e5
Remove useless dev-dependencies
2021-07-28 12:06:04 +02:00
Lukas Kalbertodt
313d143486
Remove Debug impls and syn's extra-trait features
2021-07-28 12:03:43 +02:00
Lukas Kalbertodt
8a520927a2
Add crate-level documentation
2021-07-28 12:02:09 +02:00
Lukas Kalbertodt
276e9a30cd
Add comparisons to other libraries to README
2021-07-27 18:01:49 +02:00
Lukas Kalbertodt
69142ceaeb
Add README
2021-07-27 17:43:09 +02:00
Lukas Kalbertodt
00dbe4dc0a
Fix compilation failure for --no-default-features
2021-07-27 17:16:06 +02:00
Lukas Kalbertodt
cdda7c5303
Add GitHub Actions CI script
2021-07-27 17:12:24 +02:00
Lukas Kalbertodt
c904181b6b
Add license
2021-07-27 16:32:26 +02:00
Lukas Kalbertodt
cc1a0eba5e
Minor documentation improvements
2021-07-27 16:20:24 +02:00
Lukas Kalbertodt
a86ab50588
Add more documentation to Config trait and derive
2021-07-27 16:15:05 +02:00
Lukas Kalbertodt
78b2db26e1
Allow multiple attributes in one #[config(...)]
...
E.g. `#[config(env = "FOO", default = 3)]`
2021-07-27 16:14:49 +02:00
Lukas Kalbertodt
b6046d7f4d
Add #[automatically_derive] attribute to emitted impl blocks
2021-07-27 16:14:17 +02:00
Lukas Kalbertodt
271a807ab0
Fix emission of TOML strings (in particular, quoting)
2021-07-27 15:10:07 +02:00
Lukas Kalbertodt
0bc105b22d
Add yaml::format
2021-07-27 15:05:07 +02:00
Lukas Kalbertodt
74ce2daf05
Add Builder::env to read environment variables
2021-07-27 01:14:00 +02:00
Lukas Kalbertodt
aa5eb06f49
Add Partial::from_env and implement it in derive macro
2021-07-27 01:12:57 +02:00
Lukas Kalbertodt
3ac922ca2f
Add deserialization logic for reading values from environment variables
2021-07-27 01:10:12 +02:00
Lukas Kalbertodt
1e0ccf4279
Add check for = or null bytes in env variable key
2021-07-26 22:45:55 +02:00
Lukas Kalbertodt
db2aebc270
Parse #[env] attribute and representing it in meta types
2021-07-25 11:36:36 +02:00
Lukas Kalbertodt
3c7376035c
Add Config::from_file
2021-07-25 10:56:46 +02:00
Lukas Kalbertodt
ebd8aba2fa
Disallow Option<_> type for fields with #[nested] or #[default]
...
Regarding nested fields: I cannot imagine a situation where that
distinction is useful. Also, specifying an empty nested object looks
stupid in TOML and YAML anyway.
Regarding default fields: If there is a default value, then the field
should not be declared as optional to begin with.
2021-07-25 10:46:06 +02:00
Lukas Kalbertodt
9c5990d803
Add Partial::is_empty and Partial::is_complete
2021-07-25 10:06:46 +02:00
Lukas Kalbertodt
ca5bb2488f
Add Builder type as convenient high level loading API
2021-07-25 09:45:59 +02:00
Lukas Kalbertodt
76373278b0
Remove Source trait and Config::from_sources
...
I'm not sure about a good high level API.
2021-07-24 22:25:40 +02:00
Lukas Kalbertodt
6aece589c4
Add toml::FormatOptions::comments
2021-07-24 19:44:27 +02:00
Lukas Kalbertodt
522494aa5c
Fix derive macro for pub(crate) visibility
2021-07-24 18:48:15 +02:00
Lukas Kalbertodt
7561e82215
Update example
2021-07-24 18:48:15 +02:00
Lukas Kalbertodt
ceb9799e55
Add toml module with format function for config templates
2021-07-24 18:48:15 +02:00
Lukas Kalbertodt
b663e698ba
Implement Display for meta::Integer and meta::Float
...
Those impls is pretty unambiguous I think.
2021-07-24 18:48:14 +02:00
Lukas Kalbertodt
066e7a0023
Add meta::Field::optional
2021-07-24 18:48:14 +02:00
Lukas Kalbertodt
09cc848b94
Rename #[config(child)] to #[config(nested)]
2021-07-24 18:48:14 +02:00
Lukas Kalbertodt
b71eaa0464
Add Config::META to access the configuration definition at runtime
2021-07-24 18:48:13 +02:00
Lukas Kalbertodt
e3e90430f4
Remove File::toml and File::yaml
...
The added convenience is minimal over `new`, so I'd rather have a
smaller API and less code with `#[cfg]`.
2021-05-16 16:52:10 +02:00
Lukas Kalbertodt
0d25489a31
Move error code to error.rs
2021-05-16 16:09:49 +02:00
Lukas Kalbertodt
d11f18e5f0
Move File and FileFormat to the crate root
...
The crate root is not super busy yet, so it's more convenient to have
no public sub modules.
2021-05-16 16:07:36 +02:00
Lukas Kalbertodt
b57382f546
Add some documentation
2021-05-16 15:59:33 +02:00
Lukas Kalbertodt
366fd3d10a
Remove example module and doc-example feature
...
Now that we use derives, not a lot of magic happens anymore. Thus, I
think it's not necessary to show the generated stuff anymore.
2021-05-16 15:30:26 +02:00
Lukas Kalbertodt
32fbfd3a5a
Add Source trait and implement it for files (TOML and YAML for now)
2021-05-16 15:27:47 +02:00
Lukas Kalbertodt
6d1e9e99c6
Add #[default = "confique::Partial::empty"] attributes to child fields
...
That was they can be missing in the config source without causing a
deserialization error.
2021-05-16 14:57:44 +02:00
Lukas Kalbertodt
8abc07bcda
Add handling of nested configuration types via #[config(child)]
2021-05-14 22:13:31 +02:00
Lukas Kalbertodt
3fd3835fdf
Error on unexpected extra tokens in attribute
2021-05-14 21:23:39 +02:00