These proc macros help you to implement the envir::Serialize and envir::Deserialize traits.

Attributes

By default, these macro use the uppercase field name as environment variable name.

```rust use envir::Deserialize;

[derive(envir::Deserialize, Debug)]

struct Config { home: String, }

let config = Config::from_env(); dbg!(config); ```

bash $ cargo run [src/main.rs:12] config = Ok( Config { home: "/home/sanpi", } )

Container

```rust use envir::Deserialize;

[derive(envir::Deserialize, Debug)]

[envir(prefix = "APP_")]

struct Config { dir: String, }

let config = Config::from_env(); dbg!(config); ```

bash $ export APP_DIR=~/.config/app $ cargo run [src/main.rs:12] config = Ok( Config { dir: "/home/sanpi/.config/app", } )

Field

```rust use envir::Deserialize;

[derive(envir::Deserialize, Debug)]

[envir(prefix = "APP_")]

struct Config { dir: String, }

let config = Config::from_env(); dbg!(config); ```

bash $ export APP_DIR=~/.config/app $ cargo run [src/main.rs:12] config = Ok( Config { dir: "/home/sanpi/.config/app", } )