Lukas Kalbertodt
ed141ab54d
Fix generation bug for pub and pub(in path) structs
2022-04-07 13:59:09 +02:00
Lukas Kalbertodt
6c9f398065
Allow unused fields in example
...
This fails now because access by `derive(Debug)` are not counted as
actual reads anymore as far as that lint is concerned.
2022-03-30 17:41:51 +02:00
Lukas Kalbertodt
2f0f749c74
Bump version to 0.1.2 and adjust changelog
v0.1.2
2022-03-30 17:39:05 +02:00
Lukas Kalbertodt
1c6ecdd4ad
Fix doctests using derive
...
See https://github.com/rust-lang/rust/issues/83583
2022-03-30 17:38:39 +02:00
Lukas Kalbertodt
e801403009
Fix output of toml::format by always handling leaf fields first
...
Otherwise this:
```
struct Config {
#[config(nested)]
foo: ...,
bar: ...,
}
```
would emit:
```
[foo]
```
Which is incorrect.
2022-03-30 16:15:27 +02:00
Lukas Kalbertodt
cc1681bf53
Bump version to 0.1.1
v0.1.1
2021-11-03 16:09:13 +01:00
Lukas Kalbertodt
a50f78e938
Add deserialize_with attribute that is forwarded to serde
2021-11-03 16:01:57 +01:00
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