Jealousy is a simple wrapper trait around the envy crate. The envy crate allows for easy deserialization of any structure from the environment. This crate adds the following features on top of that:
FromEnv
trait that can be implemented on any deserializable structderive
feature) to not have to write the boilerplateYou can either use cargo add jealousy
or
add jealousy = "0.1.3"
to the dependencies in your Cargo.toml.
derive
Allows for using the derive macro instead of having to implement the traitThe default impl of from_env should be enough for most use cases.
The following will deserialize the struct's fields from the following environment variables:
- CONFIG_VAR1
- CONFIG_VAR2
Both methods, the trait AND the derive macro, use the default impl of the from_env method.
```rust use serde::Deserialize; use jealousy::FromEnv;
struct Config { var1: String, var2: u16, }
impl FromEnv for Config { const PREFIX: &'static str = "CONFIG"; } ```
derive
)The derive macro mainly prevents the boilerplate you see above. It is functionally identical in every other way.
```rust use serde::Deserialize; use jealousy::FromEnv;
struct Config { var1: String, var2: u16, } ```